home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 2010-01-22 | 156.8 KB | 4,049 lines
 var PersonasWindow={ filename:null, actualfilename:null, updateModeOn:false, personaImagePreName:"personasrotator/", databaseResourceSiteName:"chrome://personasrotator/content/personasrotator/", openTabURI:"chrome://personasrotator/content/wr.html", paths:[], arrayinc:0, additemsstate:false, editstate:false, copystate:false, cutstate:false, deletestate:false, returndiv:"", warningTimeoutId:null, warningStillShowing:false, returnscrollx:null, returnscrolly:null, personasarray:[], fillspacestate:false, fillspaceadditemsettimeoutid:null, fillspacebackuparray:[], copypasteprocessingstate:false, cutpasteprocessingstate:false, STRINGS:null, handleWindowLoad:function (event) { var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var container=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(ds,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:library")); var genericpersonasseqenumurator=container.GetElements(); var namePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#name"); while (genericpersonasseqenumurator.hasMoreElements()) { var collection=genericpersonasseqenumurator.getNext(); var nametarget=ds.GetTarget(collection,namePredicate,true); if (nametarget) { var name = nametarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var newbutton=document.createElement("label"); newbutton.setAttribute("value",name); newbutton.setAttribute("crop","end"); newbutton.setAttribute("id",encodeURI(name)+"button"); newbutton.setAttribute("onclick","PersonasWindow.clickhandle(event);"); newbutton.setAttribute("context","button-popup"); newbutton.setAttribute("class","collection-button"); document.getElementById("collectionscolumn").appendChild(newbutton); var newhtmldiv=document.createElementNS("http://www.w3.org/1999/xhtml","html:div"); newhtmldiv.setAttribute("id",encodeURI(name)+"htmldiv"); newhtmldiv.setAttribute("class","inactive htmldiv"); var relatedcollection=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(ds,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:"+(PersonasWindow.createEncodedName(name))+"backs")); var collectionsseqenumurator=relatedcollection.GetElements(); var totalpersonasnumber=0; while (collectionsseqenumurator.hasMoreElements()) { collectionsseqenumurator.getNext(); totalpersonasnumber++; } if((totalpersonasnumber%3)==0) newhtmldiv.style.height=((totalpersonasnumber/3)*155)+"px"; if((totalpersonasnumber%3)==1) newhtmldiv.style.height=(Math.round((totalpersonasnumber/3)+0.33)*155)+"px"; if((totalpersonasnumber%3)==2) newhtmldiv.style.height=(Math.round((totalpersonasnumber/3))*155)+"px"; document.getElementById("gallerystack").appendChild(newhtmldiv); } /* var cfgretrieverdf = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile); cfgretrieverdf.append("extensions"); cfgretrieverdf.append("{6e73f6b7-b9ab-44b8-b744-6393e3c2e351}"); cfgretrieverdf.append("chrome"); cfgretrieverdf.append("content"); cfgretrieverdf.append("retrieve"); cfgretrieverdf.append("retrieve.rdf"); var ioService = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); var dsx=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(ioService.newFileURI(cfgretrieverdf).spec); var retrievedscontainer=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(dsx,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:retrieveds")); var retrievedsseqenumurator=retrievedscontainer.GetElements(); var retrievedimagenamePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#name"); var retrievedimagelocationPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#location"); var retrievedimagedescriptionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#description"); var retrievedimagesiteuriPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#siteuri"); var i=0; while (retrievedsseqenumurator.hasMoreElements()) { var retrievedimageresource=retrievedsseqenumurator.getNext(); var retrievedimagenametarget=dsx.GetTarget(retrievedimageresource,retrievedimagenamePredicate,true); if (retrievedimagenametarget) { var retrievedimagename = retrievedimagenametarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var retrievedimagelocationtarget=dsx.GetTarget(retrievedimageresource,retrievedimagelocationPredicate,true); if (retrievedimagelocationtarget) { var retrievedimagelocation = retrievedimagelocationtarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var retrievedimagedescriptiontarget=dsx.GetTarget(retrievedimageresource,retrievedimagedescriptionPredicate,true); if (retrievedimagedescriptiontarget) { var retrievedimagedescription = retrievedimagedescriptiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var retrievedimagesiteuritarget=dsx.GetTarget(retrievedimageresource,retrievedimagesiteuriPredicate,true); if (retrievedimagesiteuritarget) { var retrievedimagesiteuri = retrievedimagesiteuritarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } document.getElementById("newshtmldiv").getElementsByTagName("image")[i].src="chrome://personasrotator/content/retrieve/"+retrievedimagelocation; document.getElementById("newshtmldiv").getElementsByTagName("image")[i].setAttribute("tooltiptext",retrievedimagename+" - Double click on it to visit web page"); document.getElementById("newshtmldiv").getElementsByTagName("image")[i].nextSibling.nextSibling.firstChild.nodeValue=retrievedimagename; document.getElementById("newshtmldiv").getElementsByTagName("image")[i].nextSibling.nextSibling.siteuri=retrievedimagesiteuri; document.getElementById("newshtmldiv").getElementsByTagName("image")[i].siteuri=retrievedimagesiteuri; i++; } */ PersonasWindow.STRINGS = document.getElementById("personas-strings"); }, resetContextMenuPopup:function(event){ if(document.getElementById("image-open").hasAttribute("disabled")) document.getElementById("image-open").removeAttribute("disabled"); if(document.getElementById("image-open").hidden) document.getElementById("image-open").setAttribute("hidden","false"); if(document.getElementById("image-edit").hasAttribute("disabled")) document.getElementById("image-edit").removeAttribute("disabled"); if(document.getElementById("image-edit").hidden) document.getElementById("image-edit").setAttribute("hidden","false"); if(document.getElementById("image-edit-persona").hasAttribute("disabled")) document.getElementById("image-edit-persona").removeAttribute("disabled"); if(document.getElementById("image-edit-persona").hidden) document.getElementById("image-edit-persona").setAttribute("hidden","false"); if(document.getElementById("image-copy").hasAttribute("disabled")) document.getElementById("image-copy").removeAttribute("disabled"); if(document.getElementById("image-copy").hidden) document.getElementById("image-copy").setAttribute("hidden","false"); if(document.getElementById("image-cut").hasAttribute("disabled")) document.getElementById("image-cut").removeAttribute("disabled"); if(document.getElementById("image-cut").hidden) document.getElementById("image-cut").setAttribute("hidden","false"); if(document.getElementById("image-paste").hasAttribute("disabled")) document.getElementById("image-paste").removeAttribute("disabled"); if(document.getElementById("image-paste").hidden) document.getElementById("image-paste").setAttribute("hidden","false"); if(document.getElementById("image-upload").hasAttribute("disabled")) document.getElementById("image-upload").removeAttribute("disabled"); if(document.getElementById("image-upload").hidden) document.getElementById("image-upload").setAttribute("hidden","false"); if(document.getElementById("image-delete").hasAttribute("disabled")) document.getElementById("image-delete").removeAttribute("disabled"); if(document.getElementById("image-delete").hidden) document.getElementById("image-delete").setAttribute("hidden","false"); }, disableContextMenuItems:function(passedarray){ for (var i=0;i<passedarray.length;i++){ if(passedarray[i]=="image-open") document.getElementById("image-open").setAttribute("disabled","true"); else if (passedarray[i]=="image-edit") document.getElementById("image-edit").setAttribute("disabled","true"); else if (passedarray[i]=="image-edit-persona") document.getElementById("image-edit-persona").setAttribute("disabled","true"); else if (passedarray[i]=="image-copy") document.getElementById("image-copy").setAttribute("disabled","true"); else if (passedarray[i]=="image-cut") document.getElementById("image-cut").setAttribute("disabled","true"); else if (passedarray[i]=="image-paste") document.getElementById("image-paste").setAttribute("disabled","true"); else if (passedarray[i]=="image-upload") document.getElementById("image-upload").setAttribute("disabled","true"); else if (passedarray[i]=="image-delete") document.getElementById("image-delete").setAttribute("disabled","true"); } }, hideContextMenuItems:function(passedarray){ for (var i=0;i<passedarray.length;i++){ if(passedarray[i]=="image-open") document.getElementById("image-open").setAttribute("hidden","true"); else if (passedarray[i]=="image-edit") document.getElementById("image-edit").setAttribute("hidden","true"); else if (passedarray[i]=="image-edit-persona") document.getElementById("image-edit-persona").setAttribute("hidden","true"); else if (passedarray[i]=="image-copy") document.getElementById("image-copy").setAttribute("hidden","true"); else if (passedarray[i]=="image-cut") document.getElementById("image-cut").setAttribute("hidden","true"); else if (passedarray[i]=="image-paste") document.getElementById("image-paste").setAttribute("hidden","true"); else if (passedarray[i]=="image-upload") document.getElementById("image-upload").setAttribute("hidden","true"); else if (passedarray[i]=="image-delete") document.getElementById("image-delete").setAttribute("hidden","true"); } }, contextMenuPopupHandle:function(event){ var nsIPopupBoxObject = Components.interfaces.nsIPopupBoxObject; event.target.popupBoxObject.setConsumeRollupEvent(nsIPopupBoxObject.ROLLUP_NO_CONSUME); if(PersonasWindow.editstate==true) {event.preventDefault(); return;} if(document.getElementsByClassName("active")[0]!=undefined) { if(PersonasWindow.hasClass(document.getElementsByClassName("active")[0],"donatehtmldiv")) {event.preventDefault();return;} } PersonasWindow.resetContextMenuPopup(); if(PersonasWindow.hasClass(document.popupNode,"personasrotatorimage")||PersonasWindow.hasClass(document.popupNode,"serdo")){ if(document.getElementsByClassName("active")[0]!=undefined) { if(document.getElementsByClassName("active")[0].getAttribute("id")=="newshtmldiv"){ var disablearray=["image-edit","image-edit-persona","image-copy","image-cut","image-delete","image-paste","image-upload"]; PersonasWindow.disableContextMenuItems(disablearray); return; } } var hidearray=["image-paste"]; PersonasWindow.hideContextMenuItems(hidearray); } else if(PersonasWindow.hasClass(document.popupNode,"edithtmldiv")||PersonasWindow.hasClass(document.popupNode,"active")||document.popupNode.getAttribute("id")=="personapools"||document.popupNode.getAttribute("id")=="gallerystack"||document.popupNode.getAttribute("class")=="imagewrapperdiv"){ var disablearray=["image-open","image-edit","image-edit-persona","image-copy","image-cut","image-delete","image-upload"]; if (PersonasWindow.copystate==true||PersonasWindow.cutstate==true){ if(PersonasWindow.hasClass(PersonaWindowSelectManager.highlighteds[0].parentNode.parentNode,"active")) disablearray.push("image-paste"); } if(PersonasWindow.copystate==false && PersonasWindow.cutstate==false) { disablearray.push("image-paste"); } PersonasWindow.disableContextMenuItems(disablearray); } }, hasClass:function(domnode,passedclass){ var searchpattern=new RegExp("( |^)"+passedclass+"($| )"); if (searchpattern.test(domnode.className)) return true; return false; }, getlibraryfileURI : function () { var file = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("ProfD", Components.interfaces.nsIFile); file.append("personasrotator"); file.append("library.rdf"); var ios = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var URL = ios.newFileURI(file); return URL.spec; }, handleFileSelection:function(){ const nsIFilePicker = Components.interfaces.nsIFilePicker; var filepicker = Components.classes["@mozilla.org/filepicker;1"] .createInstance(nsIFilePicker); filepicker.init(window, PersonasWindow.STRINGS.getString("choosePersonas") , nsIFilePicker.modeOpen); filepicker.appendFilters(nsIFilePicker.filterImages ); var returnvalue = filepicker.show(); if (returnvalue == nsIFilePicker.returnOK || returnvalue == nsIFilePicker.returnReplace) { PersonasWindow.processFilesForAddition(filepicker.file); } }, processFilesForAddition:function(file){ var itemsleft=PersonasWindow.paths.length-PersonasWindow.arrayinc; PersonasWindow.copyTheImage(file); PersonasWindow.saveTheThumb(PersonasWindow.filename); PersonasWindow.createEmptyRdf(PersonasWindow.filename); PersonasWindow.savePersonaPositionGlobally(PersonasWindow.filename); }, copyTheImage:function(file) { var filechosen = file; var leafName=filechosen.leafName; var createdCompositeFileName=decodeURI(document.getElementsByClassName("active")[0].getAttribute("id").replace(/htmldiv$/,""))+"/"+"Personas"+"/"+leafName; var filename=PersonasWindow.checkNameCollison(createdCompositeFileName); var filem=PersonasWindow.getAppropriateCollectionDirectoryFromFileName(filename); filechosen.copyTo(filem,PersonasWindow.getTheLeafNameFromFileNameString(filename)); PersonasWindow.filename=filename; PersonasWindow.actualfilename=leafName; }, checkNameCollison: function (filename) { var file =PersonasWindow.getChromeFile(filename); var inc=1; var changedname=""; while (file.exists()) { inc++; var namesplitarray=filename.split("/"); for (var i=0;i<namesplitarray.length;i++) { if(i==namesplitarray.length-1) { var array=namesplitarray[i].split("."); var imageextension=array[array.length-1]; var newLeafName=namesplitarray[i].replace("."+imageextension,"("+inc+")"+"."+imageextension); changedname+=newLeafName; break; } changedname+=namesplitarray[i]+"/"; } filename=changedname; file =PersonasWindow.getChromeFile(filename); changedname=""; } return filename; }, getChromeFile:function(filename) { if (filename==undefined || filename==null) return; var namesplitarray=filename.split("/"); var file = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("ProfD", Components.interfaces.nsIFile); file.append("personasrotator"); for (var i=0;i<namesplitarray.length;i++) { file.append(namesplitarray[i]); } return file; }, getAppropriateCollectionDirectoryFromFileName:function(filename) { var namesplitarray=filename.split("/"); var file = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("ProfD", Components.interfaces.nsIFile); file.append("personasrotator"); for (var i=0;i<namesplitarray.length;i++) { if(i==2) break; file.append(namesplitarray[i]); } return file; }, createTheThumbandSave:function(ctx,img,canvas,filey){ ctx.clearRect(0,0,138,109); var array=img.src.split("."); var imageextension=array[array.length-1]; if(imageextension!="png" && imageextension!="gif") { ctx.fillStyle="#f5f5f5"; ctx.fillRect(0, 0, 138, 109); } var imagewidth=img.naturalWidth; var imageheight=img.naturalHeight; var widthratio=imagewidth/138.0; var heightratio=imageheight/109.0; var correctratio=(widthratio>heightratio) ? widthratio :heightratio; var heightforresize=imageheight/correctratio; var widthforresize=imagewidth/correctratio; var verticalposition=(109-heightforresize)/2; var horiziontalposition=(138-widthforresize)/2; ctx.drawImage(img,horiziontalposition,verticalposition,widthforresize,heightforresize); PersonasWindow.saveCanvas(canvas,filey.path); }, saveTheThumb:function (filename) { var inc=0; var filey = PersonasWindow.getThumbFile(filename); var img = new Image(); var canvas=document.getElementById("canvas"); var ctx = canvas.getContext('2d'); img.onload = function() { window.setTimeout(function(){ try{ PersonasWindow.createTheThumbandSave(ctx,img,canvas,filey); } catch(err){ looper(inc); } },1); } function looper(inc) { window.setTimeout(function(){ try{ PersonasWindow.createTheThumbandSave(ctx,img,canvas,filey); } catch(err){ looper(inc++); } },(inc+1)*50); } img.src = PersonasWindow.assignFileURIToImage(filename); }, getThumbFile:function(filename) { var createdThumbImageName=PersonasWindow.createThumbImageName(filename); return PersonasWindow.getChromeFile(createdThumbImageName); }, createThumbImageName:function(filename){ var namesplitarray=filename.split("/"); var createdThumbImageName=""; for (var i=0;i<namesplitarray.length;i++) { if(i==namesplitarray.length-1) {createdThumbImageName+="Thumb_"+namesplitarray[i];break;} if(i!=1) createdThumbImageName+=namesplitarray[i]+"/"; else createdThumbImageName+="Thumbs/"; } return createdThumbImageName; }, saveCanvas:function (canvas,destFile) { var file=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); file.initWithPath(destFile); var io=Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); var source=io.newURI(canvas.toDataURL(PersonasWindow.createMIMEType(destFile),""),"UTF8",null); var target=io.newFileURI(file) var persist=Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Components.interfaces.nsIWebBrowserPersist); persist.persistFlags=Components.interfaces.nsIWebBrowserPersist.PERSIST_FLAGS_REPLACE_EXISTING_FILES; persist.persistFlags |=Components.interfaces.nsIWebBrowserPersist.PERSIST_FLAGS_AUTODETECT_APPLY_CONVERSION; persist.progressListener={ onStateChange:function(aWebProgress,aRequest,aFlag,aStatus){ if(aFlag==327696){ PersonasWindow.createOtherImageRequirements(PersonasWindow.filename); } } } persist.saveURI(source,null,null,null,null,file); }, createMIMEType:function(destFile){ if(destFile.search(/.png$/)!=-1) return "image/png"; if(destFile.search(/.jpg$/)!=-1) return "image/jpeg"; if(destFile.search(/.jpeg$/)!=-1) return "image/jpeg"; if(destFile.search(/.svg$/)!=-1) return "image/svg+xml"; return "image/png"; }, createEmptyRdf:function(filename){ var descriptionForImage="undefined"; var nameForImage=PersonasWindow.actualfilename.replace(/\.\w+$/,"").replace(/&/g,"&"); var locationForImage=PersonasWindow.getTheLeafNameFromFileNameString(filename).replace(/&/g,"&"); var positionForImage="CENTER"; var defaultForImage="false"; var activecollectioname=filename.split("/")[0].replace(/&/g,"&"); var version="0.1"; var uploaded="false"; var siteURI="null".replace(/&/g,"&"); var source="local"; var screenRes=screen.width+"x"+screen.height; var backgroundColor=PersonasWindow.retrieveDesktopBackgroundColor(); var RDFstring='<?xml version="1.0"?>' +'<RDF:RDF xmlns:personasrotator="urn:personasrotator#" xmlns:NC="http://home.netscape.com/NC-rdf#" xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">'+'<RDF:Description RDF:about="'+(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename)).replace(/&/g,"&")+'" personasrotator:name="'+nameForImage+'" personasrotator:default="'+defaultForImage+'" personasrotator:description="'+descriptionForImage+'" personasrotator:location="'+locationForImage+'" personasrotator:position="'+positionForImage+'" personasrotator:tags="'+activecollectioname+'" personasrotator:version="'+version+'" personasrotator:uploaded="'+uploaded+'" personasrotator:siteuri="'+siteURI+'" personasrotator:source="'+source+'" personasrotator:screenres="'+screenRes+'" personasrotator:backgroundcolor="'+backgroundColor+'" />'+'</RDF:RDF>'; var emptyRDFnsiFile=PersonasWindow.getChromeFile(PersonasWindow.createIndividualRDFFilename(filename)); PersonasRotatorFileIO.write(emptyRDFnsiFile,RDFstring,"w","UTF-8"); }, getTheLeafNameFromFileNameString:function(filename) { var patharray=filename.split("/"); var leafName=patharray[patharray.length-1]; return leafName; }, createIndividualRDFFilename:function(filename) { var array=filename.split("."); var imageextension=array[array.length-1]; var rdffilename=filename+".rdf"; var namesplitarray=rdffilename.split("/"); var createdRDFName=""; for (var i=0;i<namesplitarray.length;i++) { if(i==namesplitarray.length-1) {createdRDFName+=namesplitarray[i];break;} if(i!=1) createdRDFName+=namesplitarray[i]+"/"; else createdRDFName+="RDFs/"; } return createdRDFName; }, savePersonaPositionGlobally:function(filename) { PersonasWindow.savePersonaPositionForTheImage(filename); PersonasWindow.addImageResourceNodeToLibraryDatabase(filename); PersonasWindow.addImageResourceNodeToCollectionDatabase(filename); }, savePersonaPositionForTheImage:function(filename) { var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getTheURIFromFileName(PersonasWindow.createIndividualRDFFilename(filename))); var leafName=PersonasWindow.getTheLeafNameFromFileNameString(filename); var theImageNode = PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename)); var positionPredicate=PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#position"); var positiontarget=ds.GetTarget(theImageNode,positionPredicate,true); if (positiontarget!=null) var position= positiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; else {return} var newposition="CENTER"; var predicate=PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#position"); var oldtarget=PersonasRotatorRDF.rdfService.GetLiteral(position); var newtarget=PersonasRotatorRDF.rdfService.GetLiteral(newposition); ds.Change(theImageNode,predicate,oldtarget,newtarget); ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); }, retrieveDesktopBackgroundColor:function(){ return Components.classes["@mozilla.org/browser/shell-service;1"].getService(Components.interfaces.nsIShellService).desktopBackgroundColor; }, addImageResourceNodeToLibraryDatabase: function (filename) { var imagename = PersonasWindow.actualfilename.replace(/\.\w+$/,""); var imagelocation = PersonasWindow.getTheLeafNameFromFileNameString(filename); var imagedescription = "undefined"; var imageposition = "CENTER"; var activecollectioname=filename.split("/")[0]; var imageversion="0.1"; var imageuploaded="false"; var imagesiteURI="null".replace(/&/g,"&"); var imagesource="local"; var imagescreenRes=screen.width+"x"+screen.height; var imagebackgroundColor=PersonasWindow.retrieveDesktopBackgroundColor(); var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var newnode=PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename)); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#name" ),PersonasRotatorRDF.rdfService.GetLiteral( imagename ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#default" ),PersonasRotatorRDF.rdfService.GetLiteral( "false" ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#description" ),PersonasRotatorRDF.rdfService.GetLiteral( imagedescription ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#location" ),PersonasRotatorRDF.rdfService.GetLiteral( imagelocation ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#position" ),PersonasRotatorRDF.rdfService.GetLiteral( imageposition ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#tags" ),PersonasRotatorRDF.rdfService.GetLiteral( activecollectioname),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#version" ),PersonasRotatorRDF.rdfService.GetLiteral( imageversion),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#uploaded" ),PersonasRotatorRDF.rdfService.GetLiteral( imageuploaded),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#siteuri" ),PersonasRotatorRDF.rdfService.GetLiteral( imagesiteURI),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#source" ),PersonasRotatorRDF.rdfService.GetLiteral( imagesource),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#screenres" ),PersonasRotatorRDF.rdfService.GetLiteral( imagescreenRes),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#backgroundcolor" ),PersonasRotatorRDF.rdfService.GetLiteral(imagebackgroundColor),true); var mainSeq=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(ds,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:"+PersonasWindow.createEncodedName(decodeURI(document.getElementsByClassName("active")[0].getAttribute("id").replace(/htmldiv$/,"")))+"backs")); mainSeq.AppendElement(newnode); ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); }, addImageResourceNodeToCollectionDatabase: function (filename) { var imagename = PersonasWindow.actualfilename.replace(/\.\w+$/,""); var imagelocation = PersonasWindow.getTheLeafNameFromFileNameString(filename); var imagedescription = "undefined"; var imageposition = "CENTER"; var activecollectioname=filename.split("/")[0]; var imageversion="0.1"; var imageuploaded="false"; var imagesiteURI="null".replace(/&/g,"&"); var imagesource="local"; var imagescreenRes=screen.width+"x"+screen.height; var imagebackgroundColor=PersonasWindow.retrieveDesktopBackgroundColor(); var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getTheURIFromFileName(PersonasWindow.createCollectionRDfFileName(filename))); var newnode=PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename)); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#name" ),PersonasRotatorRDF.rdfService.GetLiteral( imagename ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#default" ),PersonasRotatorRDF.rdfService.GetLiteral( "false" ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#description" ),PersonasRotatorRDF.rdfService.GetLiteral( imagedescription ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#location" ),PersonasRotatorRDF.rdfService.GetLiteral( imagelocation ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#position" ),PersonasRotatorRDF.rdfService.GetLiteral( imageposition ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#tags" ),PersonasRotatorRDF.rdfService.GetLiteral( activecollectioname),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#version" ),PersonasRotatorRDF.rdfService.GetLiteral( imageversion),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#uploaded" ),PersonasRotatorRDF.rdfService.GetLiteral( imageuploaded),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#siteuri" ),PersonasRotatorRDF.rdfService.GetLiteral( imagesiteURI),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#source" ),PersonasRotatorRDF.rdfService.GetLiteral( imagesource),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#screenres" ),PersonasRotatorRDF.rdfService.GetLiteral( imagescreenRes),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#backgroundcolor" ),PersonasRotatorRDF.rdfService.GetLiteral( imagebackgroundColor),true); var mainSeq=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(ds,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:"+PersonasWindow.createEncodedName(decodeURI(document.getElementsByClassName("active")[0].getAttribute("id").replace(/htmldiv$/,"")))+"backs")); mainSeq.AppendElement(newnode); ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); }, updatePersonaPositionForTheImageOnLibraryRdf:function(filename) { var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var leafName=PersonasWindow.getTheLeafNameFromFileNameString(filename); var theImageNode = PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename)); var positionPredicate=PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#position"); var positiontarget=ds.GetTarget(theImageNode,positionPredicate,true); if (positiontarget!=null) var position= positiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; else {return} var newposition="CENTER"; var predicate=PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#position"); var oldtarget=PersonasRotatorRDF.rdfService.GetLiteral(position); var newtarget=PersonasRotatorRDF.rdfService.GetLiteral(newposition); ds.Change(theImageNode,predicate,oldtarget,newtarget); ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); }, updatePersonaPositionForTheImageOnCollectionRdf:function(filename) { var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getTheURIFromFileName(PersonasWindow.createCollectionRDfFileName(filename))); var leafName=PersonasWindow.getTheLeafNameFromFileNameString(filename); var theImageNode = PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename)); var positionPredicate=PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#position"); var positiontarget=ds.GetTarget(theImageNode,positionPredicate,true); if (positiontarget!=null) var position= positiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; else {return} var newposition="CENTER"; var predicate=PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#position"); var oldtarget=PersonasRotatorRDF.rdfService.GetLiteral(position); var newtarget=PersonasRotatorRDF.rdfService.GetLiteral(newposition); ds.Change(theImageNode,predicate,oldtarget,newtarget); ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); }, getTheURIFromFileName:function(filename) { var namesplitarray=filename.split("/"); var file=Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile); file.append("personasrotator"); for (var i=0;i<namesplitarray.length;i++) { file.append(namesplitarray[i]); } var ios=Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var URL=ios.newFileURI(file); return URL.spec; }, createOtherImageRequirements:function (filename) { PersonasWindow.appendTheNewImageToCollection(filename); if (PersonasWindow.updateModeOn==true) { PersonasWindow.arrayinc++; if(PersonasWindow.arrayinc==PersonasWindow.paths.length) { PersonasWindow.refreshWindowOpenerProperties(filename); PersonasWindow.arrayinc=0; PersonasWindow.paths=[]; PersonasWindow.updateModeOn=false; PersonasWindow.additemsstate=false; } else { PersonasWindow.starto(); } } else { PersonasWindow.refreshWindowOpenerProperties(filename); } }, appendTheNewImageToCollection:function(filename) { var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var uri=PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename); var imageResource = PersonasRotatorRDF.rdfService.GetResource(uri); var imagenamePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#name"); var imagenametarget=ds.GetTarget(imageResource,imagenamePredicate,true); if (imagenametarget) { var imagename = imagenametarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagetagsPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#tags"); var imagetagstarget=ds.GetTarget(imageResource,imagetagsPredicate,true); if (imagetagstarget) { var imagetags = imagetagstarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagedescriptionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#description"); var imagedescriptiontarget=ds.GetTarget(imageResource,imagedescriptionPredicate,true); if (imagedescriptiontarget) { var imagedescription = imagedescriptiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagelocationPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#location"); var imagelocationtarget=ds.GetTarget(imageResource,imagelocationPredicate,true); if (imagelocationtarget) { var imagelocation = imagelocationtarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; imagelocation = filename.split("/")[0]+"/Thumbs/Thumb_"+imagelocation; } var node=PersonasWindow.createPersonaComponents(imagelocation,imagename); document.getElementsByClassName("active")[0].appendChild(node); var aScrollboxElement = document.getElementById('personapools'); var xpcomInterface = aScrollboxElement.boxObject.QueryInterface(Components.interfaces.nsIScrollBoxObject); var totalpersonasnumber=document.getElementsByClassName("active")[0].childNodes.length; window.setTimeout(function(){ if((totalpersonasnumber%3)==0) xpcomInterface.scrollTo(0,((totalpersonasnumber/3)*155)); if((totalpersonasnumber%3)==1) xpcomInterface.scrollTo(0,(Math.round((totalpersonasnumber/3)+0.33)*155)); if((totalpersonasnumber%3)==2) xpcomInterface.scrollTo(0,(Math.round((totalpersonasnumber/3))*155)); },0); }, refreshWindowOpenerProperties:function(filename) { var imagelocation = filename; var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var enumerator = wm.getEnumerator("navigator:browser"); var windows=[]; while(enumerator.hasMoreElements()) { win = enumerator.getNext(); windows.push(win); } if (windows.length!=0){ windows[0].PersonasRotator.personaimagesarraymaker(); } else { //do nothing } for (var i=0;i<windows.length;i++) { if (i==0) continue; windows[i].PersonasRotator.personasrotator=windows[0].PersonasRotator.personasrotator; } if (window.opener!=undefined && window.opener.PersonasRotator!=undefined){ window.opener.PersonasRotator.currentimagefilename=imagelocation; window.opener.PersonasRotator.imagespecified='yes'; window.opener.PersonasRotator.newimage.src=PersonasWindow.assignFileURIToImage(imagelocation); } else { var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var enumerator = wm.getEnumerator("navigator:browser"); var win=null; while(enumerator.hasMoreElements()) { win = enumerator.getNext(); break; } if (win!=null){ win.PersonasRotator.currentimagefilename=imagelocation; win.PersonasRotator.imagespecified='yes'; win.PersonasRotator.newimage.src=PersonasWindow.assignFileURIToImage(imagelocation); } else { //do nothing } } }, createAlertPrompt:function(promptString){ var prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService); prompt.alert(null,"Personas Rotator",promptString); }, createPromptPrompt:function(promptString){ var prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService); var input = {value:""}; var check = {value:false}; var result= prompt.prompt(null,"Personas Rotator",promptString,input,null,check); if(result==false) return null; else return input.value; }, createConfirmPrompt:function(promptString){ var prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService); return prompt.confirm(null,"Personas Rotator",promptString); }, additems:function () { if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;} const nsIFilePicker=Components.interfaces.nsIFilePicker; var filepicker=Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker); filepicker.init(window,PersonasWindow.STRINGS.getString("choosePersonas"),nsIFilePicker.modeOpenMultiple); filepicker.appendFilters(nsIFilePicker.filterImages ); var returnvalue=filepicker.show(); if (returnvalue==nsIFilePicker.returnOK || returnvalue==nsIFilePicker.returnReplace) { var chosenfiles = filepicker.files; while (chosenfiles.hasMoreElements()) { var arg=chosenfiles.getNext().QueryInterface(Components.interfaces.nsILocalFile); PersonasWindow.paths.push(arg); } if(PersonasWindow.paths.length>15) { if(!PersonasWindow.createConfirmPrompt(PersonasWindow.STRINGS.getString("moreThan15Confirm"))) {PersonasWindow.paths=[];return;} } PersonasWindow.additemsstate=true; PersonasWindow.updateModeOn=true; PersonasWindow.starto(); } }, starto:function () { var filechosen = PersonasWindow.paths[PersonasWindow.arrayinc]; PersonasWindow.processFilesForAddition(filechosen); }, createnewcollection:function () { if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;}; var promptwarning=PersonasWindow.STRINGS.getString("giveCollectionName"); var name=""; function validate(passedname) { name=passedname; if (name==null) return null; name=name.replace(/^\s+|\s+$/g, ''); while (name=="") { name=PersonasWindow.createPromptPrompt(PersonasWindow.STRINGS.getString("giveCollectionName")); if (name==null) return null; name=name.replace(/^\s+|\s+$/g, ''); } while (name.search(/[\\\/:*?"<>|]/g)!=-1) { name=PersonasWindow.createPromptPrompt(PersonasWindow.STRINGS.getString("invalidCharacter")); if (name==null) return null; name=name.replace(/^\s+|\s+$/g, ''); while (name=="") { name=PersonasWindow.createPromptPrompt(PersonasWindow.STRINGS.getString("giveCollectionName")); if (name==null) return null; name=name.replace(/^\s+|\s+$/g, ''); } } return name; } function checkCollectionNameCollision(passedname){ if (passedname==null) return false; var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var container=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(ds,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:library")); var genericpersonasseqenumurator=container.GetElements(); var namePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#name"); while (genericpersonasseqenumurator.hasMoreElements()) { var collection=genericpersonasseqenumurator.getNext(); var nametarget=ds.GetTarget(collection,namePredicate,true); if (nametarget) { var name = nametarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var collectionname=name; if (collectionname.toLowerCase()==passedname.toLowerCase()) {return true} } return false; } while (checkCollectionNameCollision(validate(PersonasWindow.createPromptPrompt(promptwarning)))){ promptwarning=PersonasWindow.STRINGS.getFormattedString("sameCollectionName",[name]); } if (name==null) return ; PersonasWindow.changeDOMForNewCollectionAddition(name); PersonasWindow.addNewEmptyCollectionToDatabase(name); PersonasWindow.createNewCollectionDirectories(name); PersonasWindow.createNewCollectionCollecitonRDFFile(name); }, removeClass : function(domnode, passedclass){ var searchpattern = new RegExp("( |^)"+passedclass+"($| )"); var classtring=domnode.className; classtring=classtring.replace(searchpattern, "$1"); classtring=classtring.replace(/ $/, ""); domnode.className=classtring; }, changeDOMForNewCollectionAddition: function (name) { if(PersonasWindow.hasClass(document.getElementById("deleteinfo"),"infovisible")) PersonasWindow.removeClass(document.getElementById("deleteinfo"),"infovisible"); var newbutton=document.createElement("label"); newbutton.setAttribute("value",name); newbutton.setAttribute("crop","end"); newbutton.setAttribute("id",encodeURI(name)+"button"); newbutton.setAttribute("onclick","PersonasWindow.clickhandle(event);"); newbutton.setAttribute("context","button-popup"); newbutton.setAttribute("class","collection-button"); newbutton.setAttribute("clicked","true"); document.getElementById("collectionscolumn").appendChild(newbutton); document.getElementById("collectionscolumn").appendChild(newbutton); var newhtmldiv=document.createElementNS("http://www.w3.org/1999/xhtml","html:div"); newhtmldiv.setAttribute("id",encodeURI(name)+"htmldiv"); newhtmldiv.setAttribute("class","htmldiv"); var addedhtmldiv=document.getElementById("gallerystack").appendChild(newhtmldiv); if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.addClass(document.getElementsByClassName("active")[0],"inactive"); if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("active")[0],"active"); if(PersonasWindow.editstate==true) { var edithtmldiv=document.getElementsByClassName("edithtmldiv")[0]; edithtmldiv.parentNode.removeChild(edithtmldiv); PersonasWindow.editstate=false; } if(!PersonasWindow.hasClass(document.getElementById("editnavbuttons"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("editnavbuttons"),"buttoninactive");} PersonasWindow.addClass(addedhtmldiv,"active"); PersonasWindow.removeClass(addedhtmldiv,"inactive"); if(PersonasWindow.hasClass(document.getElementById("gallerynavbuttons"),"buttoninactive")) {PersonasWindow.removeClass(document.getElementById("gallerynavbuttons"),"buttoninactive");} if(document.getElementsByClassName("activecollectionbutton")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("activecollectionbutton")[0],"activecollectionbutton"); PersonasWindow.addClass(newbutton,"activecollectionbutton"); if(!PersonasWindow.hasClass(document.getElementById("newsheading"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("newsheading"),"buttoninactive");} if(!PersonasWindow.hasClass(document.getElementById("newshtmldiv"),"inactive")) { PersonasWindow.addClass(document.getElementById("newshtmldiv"),"inactive"); PersonasWindow.removeClass(document.getElementById("newshtmldiv"),"active"); } }, addNewEmptyCollectionToDatabase:function (name) { var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var newnode=PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(name)); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#relateduri" ),PersonasRotatorRDF.rdfService.GetLiteral( "urn:personasrotator:"+PersonasWindow.createEncodedName(name)+"backs"),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#name" ),PersonasRotatorRDF.rdfService.GetLiteral( name ),true); var mainSeq=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(ds,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:library")); mainSeq.AppendElement(newnode); ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); }, createNewCollectionDirectories:function(name){ var mainDirectory=PersonasWindow.getMainPersonaDirectory(); var mainCollectionDirectory=mainDirectory; mainCollectionDirectory.append(name); PersonasWindow.createNewDirectoriesForNewCollection(mainCollectionDirectory); mainCollectionDirectory.append("Personas"); var mainCollectionPersonasDirectory=mainCollectionDirectory; PersonasWindow.createNewDirectoriesForNewCollection(mainCollectionPersonasDirectory); var mainCollectionThumbsDirectory=PersonasWindow.getMainPersonaDirectory(); mainCollectionThumbsDirectory.append(name); mainCollectionThumbsDirectory.append("Thumbs"); PersonasWindow.createNewDirectoriesForNewCollection(mainCollectionThumbsDirectory); var mainCollectionRDFsDirectory=PersonasWindow.getMainPersonaDirectory(); mainCollectionRDFsDirectory.append(name); mainCollectionRDFsDirectory.append("RDFs"); PersonasWindow.createNewDirectoriesForNewCollection(mainCollectionRDFsDirectory); }, getMainPersonaDirectory:function() { var file = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("ProfD", Components.interfaces.nsIFile); file.append("personasrotator"); return file; }, createNewDirectoriesForNewCollection:function(directory){ if(!directory.exists()) { try { directory.create(0x01, 0775);//for linux, directories need to be created with 775 permission return true; } catch(e) { PersonasWindow.createAlertPrompt(PersonasWindow.STRINGS.getString("permissionDenied")); return false; } } }, createNewCollectionCollecitonRDFFile:function(name){ var mainDirectory=PersonasWindow.getMainPersonaDirectory(); mainDirectory.append(name); mainDirectory.append("Collection.rdf"); var RDFstring='<?xml version="1.0"?>'+'<RDF:RDF xmlns:personasrotator="urn:personasrotator#" xmlns:NC="http://home.netscape.com/NC-rdf#" xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">'+'<RDF:Seq RDF:about="urn:personasrotator:'+PersonasWindow.createEncodedName(name).replace(/&/g,"&")+'backs"></RDF:Seq>'+'</RDF:RDF>'; PersonasRotatorFileIO.write(mainDirectory,RDFstring,"w","UTF-8"); }, deletebutton:function (node) { if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;}; var chosenbuttonname=node.getAttribute("id").replace(/button$/,""); var relatedhtmldiv=document.getElementById(chosenbuttonname+"htmldiv"); var collectionname=decodeURI(chosenbuttonname) var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var relatedcollection=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(ds,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:"+(PersonasWindow.createEncodedName(collectionname))+"backs")); var collectionsseqenumurator=relatedcollection.GetElements(); var totalpersonasnumber=0; while (collectionsseqenumurator.hasMoreElements()) { collectionsseqenumurator.getNext(); totalpersonasnumber++; } var confirmtext="Collection will be removed."; if (totalpersonasnumber>0) { confirmtext+=" Personas that belongs to this collection will be removed, too.\nWould you like to continue?"; } else { confirmtext+="Would you like to continue?"; } var response=PersonasWindow.createConfirmPrompt(confirmtext); if (response==false) return; node.parentNode.removeChild(node); relatedhtmldiv.parentNode.removeChild(relatedhtmldiv); var activecollectionname=decodeURI(chosenbuttonname); PersonasWindow.handleCollectionReatedResourceNodesDeletion(activecollectionname); var mainDirectory=PersonasWindow.getMainPersonaDirectory(); mainDirectory.append(activecollectionname); mainDirectory.remove(true); PersonasWindow.handlePersonasWindowPropertiesAfterPersonaImageDeletes(); PersonasWindow.refreshWindowOpenerAfterPersonaImageDelete(); }, handleCollectionReatedResourceNodesDeletion: function(activecollectionname){ var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var uri=PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(activecollectionname); var rdfnode = PersonasRotatorRDF.rdfService.GetResource(uri); var resourceNode=rdfnode; PersonasWindow.removeChildren(ds,resourceNode,false); var predicatesIn=ds.ArcLabelsIn(resourceNode); while (predicatesIn.hasMoreElements()){ var predicateIn=predicatesIn.getNext(); var source=ds.GetSource(predicateIn,resourceNode,true); ds.Unassert(source,predicateIn,resourceNode); } var collectionnode=PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:"+PersonasWindow.createEncodedName(activecollectionname)+"backs"); var resourceNode2=collectionnode; PersonasWindow.removeChildren(ds,resourceNode2,false); var predicatesIn2=ds.ArcLabelsIn(resourceNode2); while (predicatesIn2.hasMoreElements()){ var predicateIn2=predicatesIn2.getNext(); var source2=ds.GetSource(predicateIn2,resourceNode2,true); ds.Unassert(source2,predicateIn2,resourceNode2); } ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); }, handlePersonasWindowPropertiesAfterPersonaImageDeletes: function(){ if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.addClass(document.getElementsByClassName("active")[0],"inactive"); if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("active")[0],"active"); if(document.getElementsByClassName("activecollectionbutton")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("activecollectionbutton")[0],"activecollectionbutton"); if(!PersonasWindow.hasClass(document.getElementById("gallerynavbuttons"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("gallerynavbuttons"),"buttoninactive");} if(!PersonasWindow.hasClass(document.getElementById("newsheading"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("newsheading"),"buttoninactive");} if(PersonaWindowSelectManager.highlighteds.length>0){ if(PersonaWindowSelectManager.highlighteds[0].parentNode.parentNode.id.replace(/htmldiv$/,"")==document.popupNode.id.replace(/button$/,"")) PersonaWindowSelectManager.highlighteds=[]; } PersonasWindow.addClass(document.getElementById("deleteinfo"),"infovisible"); }, refreshWindowOpenerAfterPersonaImageDelete: function(){ var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var enumerator = wm.getEnumerator("navigator:browser"); var windows=[]; var win; while(enumerator.hasMoreElements()) { win = enumerator.getNext(); windows.push(win); } if (windows.length!=0){ windows[0].PersonasRotator.personaimagesarraymaker(); windows[0].PersonasRotator.imagespecified='no'; } else { //do nothing } for (var i=0;i<windows.length;i++) { if (i==0) continue; windows[i].PersonasRotator.personasrotator=windows[0].PersonasRotator.personasrotator; windows[i].PersonasRotator.imagespecified='no'; } }, deleteitem:function (node,last) { if (last == null){ last=false; } var chosenthumbfilename=decodeURI(node.getAttribute("src").split(PersonasWindow.personaImagePreName)[1]); var filename=PersonasWindow.createPersonaImageNameFromThumbImageName(chosenthumbfilename); PersonasWindow.removePersonaImageFile(filename); PersonasWindow.removePersonaImageindividualRDFFile(filename); PersonasWindow.removePersonaImageThumbFile(filename); PersonasWindow.removeRelatedImageNodeFromLibraryDatabase(filename); PersonasWindow.removeRelatedImageNodeFromCollectionDatabase(filename); PersonasWindow.removeImageFromCollectionDOMTree(node.parentNode,"delete"); if (last==true) {PersonasWindow.refreshWindowOpenerAfterPersonaImageDelete();} PersonasWindow.arrayinc--; PersonasWindow.deleteitemstart(); }, createPersonaImageNameFromThumbImageName:function(chosenthumbfilename){ var namesplitarray=chosenthumbfilename.split("/"); var createdFileName=""; for (var i=0;i<namesplitarray.length;i++) { if(i==namesplitarray.length-1) {createdFileName+=namesplitarray[i];break;} if(i!=1) createdFileName+=namesplitarray[i]+"/"; else createdFileName+="Personas/"; } return createdFileName.replace("/Thumb_","/"); }, removePersonaImageFile: function(filename){ var file =PersonasWindow.getChromeFile(filename); try { file.remove(false); } catch(err){ Components.utils.reportError(err); } }, removePersonaImageindividualRDFFile: function(filename){ var individualRDFFilename=PersonasWindow.createIndividualRDFFilename(filename); var filex =PersonasWindow.getChromeFile(individualRDFFilename); try { filex.remove(false); } catch(err){ Components.utils.reportError(err); } }, removePersonaImageThumbFile: function(filename){ var filey = PersonasWindow.getThumbFile(filename); try { filey.remove(false); } catch(err){ Components.utils.reportError(err); } }, removeRelatedImageNodeFromLibraryDatabase: function(filename){ var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var uri=PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename); var rdfnode = PersonasRotatorRDF.rdfService.GetResource(uri); var resourceNode=rdfnode; PersonasWindow.removeChildren(ds,resourceNode,false); var predicatesIn=ds.ArcLabelsIn(resourceNode); while (predicatesIn.hasMoreElements()){ var predicateIn=predicatesIn.getNext(); var source=ds.GetSource(predicateIn,resourceNode,true); ds.Unassert(source,predicateIn,resourceNode); } ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); }, removeChildren : function (ds,resourceNode,bool){ var bool=bool; var predicates=ds.ArcLabelsOut(resourceNode); while (predicates.hasMoreElements()){ var predicate=predicates.getNext(); var targets=ds.GetTargets(resourceNode,predicate,true); while (targets.hasMoreElements()) { var target = targets.getNext(); try { target=target.QueryInterface(Components.interfaces.nsIRDFResource); PersonasWindow.removeChildren(ds,target,false); } catch (err){ //foobar } ds.Unassert(resourceNode,predicate,target) } } }, removeRelatedImageNodeFromCollectionDatabase: function(filename){ var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getTheURIFromFileName(PersonasWindow.createCollectionRDfFileName(filename))); var uri=PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename); var rdfnode = PersonasRotatorRDF.rdfService.GetResource(uri); var resourceNode=rdfnode; PersonasWindow.removeChildren(ds,resourceNode,false); var predicatesIn=ds.ArcLabelsIn(resourceNode); while (predicatesIn.hasMoreElements()){ var predicateIn=predicatesIn.getNext(); var source=ds.GetSource(predicateIn,resourceNode,true); ds.Unassert(source,predicateIn,resourceNode); } ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); }, removeImageFromCollectionDOMTree: function(node,mode){ var index; for (var i=0;i<node.parentNode.childNodes.length;i++){ if(node.parentNode.childNodes[i]==node) index=i+1; } var bool=(node.parentNode.childNodes.length%3==1); var parentNode=node.parentNode; var aScrollboxElement = document.getElementById('personapools'); var xpcomInterface = aScrollboxElement.boxObject.QueryInterface(Components.interfaces.nsIScrollBoxObject); var extend=mode=="cut" ? 3 : 1; if((index%3)==0) xpcomInterface.scrollTo(0,((index/3-extend)*155)); if((index%3)==1) xpcomInterface.scrollTo(0,(Math.round((index/3-extend)+0.33)*155)); if((index%3)==2) xpcomInterface.scrollTo(0,(Math.round((index/3-extend))*155)); node.parentNode.removeChild(node); }, createCollectionRDfFileName:function(filename) { return filename.split("/")[0]+"/"+"Collection.rdf"; }, clickhandle:function (event) { if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;}; if(event.button==2) return; var visibleInfoDivs=document.getElementsByClassName("infovisible"); for (var i=0;i<visibleInfoDivs.length;i++) { PersonasWindow.removeClass(visibleInfoDivs[i],"infovisible"); } if(PersonasWindow.fillspacestate==true) { if(PersonasWindow.fillspaceadditemsettimeoutid!=null) { window.clearTimeout(PersonasWindow.fillspaceadditemsettimeoutid); } if(document.getElementsByClassName("activecollectionbutton")[0]!=undefined) document.getElementsByClassName("activecollectionbutton")[0].setAttribute("fillspaceleft",PersonasWindow.arrayinc); PersonasWindow.updateModeOn=false; PersonasWindow.fillspacestate=false; }; PersonasWindow.removeClass(document.getElementById("progressinfo"),"infovisible"); var aScrollboxElement=document.getElementById('personapools'); var xpcomInterface=aScrollboxElement.boxObject.QueryInterface(Components.interfaces.nsIScrollBoxObject); xpcomInterface.scrollTo(0, 0); if(PersonasWindow.editstate==true) { var edithtmldiv=document.getElementsByClassName("edithtmldiv")[0]; edithtmldiv.parentNode.removeChild(edithtmldiv); PersonasWindow.editstate=false; } if(document.getElementsByClassName("activecollectionbutton")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("activecollectionbutton")[0],"activecollectionbutton"); PersonasWindow.addClass(event.target,"activecollectionbutton"); if(PersonasWindow.hasClass(document.getElementById("gallerynavbuttons"),"buttoninactive")) {PersonasWindow.removeClass(document.getElementById("gallerynavbuttons"),"buttoninactive");} if(!PersonasWindow.hasClass(document.getElementById("editnavbuttons"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("editnavbuttons"),"buttoninactive");} if(!PersonasWindow.hasClass(document.getElementById("newsheading"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("newsheading"),"buttoninactive");} if (!PersonasWindow.hasClass(document.getElementById(event.target.getAttribute("id").replace(/button$/,"")+"htmldiv"),"active")) { if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.addClass(document.getElementsByClassName("active")[0],"inactive"); if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("active")[0],"active"); PersonasWindow.addClass(document.getElementById(event.target.getAttribute("id").replace(/button$/,"")+"htmldiv"),"active"); PersonasWindow.removeClass(document.getElementById(event.target.getAttribute("id").replace(/button$/,"")+"htmldiv"),"inactive"); } if (event.target.getAttribute("clicked")!="true" || event.target.hasAttribute("fillspaceleft")) { PersonasWindow.addClass(document.getElementById("progressinfo"),"infovisible"); if(event.target.getAttribute("clicked")!="true") event.target.setAttribute("clicked","true"); PersonasWindow.fillspace(decodeURI(document.getElementsByClassName("active")[0].getAttribute("id").replace(/htmldiv$/,""))); } if(event.target.getAttribute("clicked")!="true") event.target.setAttribute("clicked","true"); }, fillspace:function (activecollectionnamepassed) { PersonasWindow.fillspacestate=true; if (document.getElementById(encodeURI(activecollectionnamepassed)+"button").hasAttribute("fillspaceleft")) { PersonasWindow.arrayinc=parseInt(document.getElementsByClassName("activecollectionbutton")[0].getAttribute("fillspaceleft")); } else { PersonasWindow.arrayinc=0; } var activecollectionname=activecollectionnamepassed; var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var container=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(ds,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:"+PersonasWindow.createEncodedName(activecollectionname)+"backs")); var genericpersonaslienumurator=container.GetElements(); PersonasWindow.personasarray=[]; var inc=0; while (genericpersonaslienumurator.hasMoreElements()) { var genericpersonas=genericpersonaslienumurator.getNext(); var imageResource=genericpersonas; var imagenamePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#name"); var imagenametarget=ds.GetTarget(imageResource,imagenamePredicate,true); if (imagenametarget) { var imagename = imagenametarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagedescriptionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#description"); var imagedescriptiontarget=ds.GetTarget(imageResource,imagedescriptionPredicate,true); if (imagedescriptiontarget) { var imagedescription = imagedescriptiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagelocationPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#location"); var imagelocationtarget=ds.GetTarget(imageResource,imagelocationPredicate,true); if (imagelocationtarget) { var imagelocation = imagelocationtarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; imagelocation = activecollectionname+"/Thumbs/Thumb_"+imagelocation; } var persona=[]; persona["activecollectionname"]=activecollectionname; persona["imagelocation"]=imagelocation; persona["imagename"]=imagename; PersonasWindow.personasarray.push(persona); } PersonasWindow.fillspaceadditemstart(); }, fillspaceadditemstart:function(){ if(PersonasWindow.arrayinc==PersonasWindow.personasarray.length) { if(PersonasWindow.fillspacebackuparray.length!=0){ for(var i=0;i<PersonasWindow.fillspacebackuparray.length;i++){ document.getElementsByClassName("active")[0].appendChild(PersonasWindow.fillspacebackuparray[i]); } PersonasWindow.fillspacebackuparray=[]; } PersonasWindow.updateModeOn=false; PersonasWindow.arrayinc=0; PersonasWindow.fillspacestate=false; document.getElementsByClassName("activecollectionbutton")[0].removeAttribute("fillspaceleft"); PersonasWindow.removeClass(document.getElementById("progressinfo"),"infovisible"); return; } PersonasWindow.updateModeOn=true; var itemsleft=PersonasWindow.personasarray.length-PersonasWindow.arrayinc; document.getElementById("hider_div").style.backgroundPosition=(301*(PersonasWindow.arrayinc/PersonasWindow.personasarray.length))+"px top"; PersonasWindow.fillspaceadditemsettimeoutid=window.setTimeout(function(){ var persona=PersonasWindow.personasarray[PersonasWindow.arrayinc]; PersonasWindow.fillspaceadditem(persona["activecollectionname"],persona["imagelocation"],persona["imagename"]) },0); }, fillspaceadditem:function(activecollectionname,imagelocation,imagename){ document.getElementById(encodeURI(activecollectionname)+"htmldiv").appendChild(PersonasWindow.createPersonaComponents(imagelocation,imagename)); PersonasWindow.arrayinc++; PersonasWindow.fillspaceadditemstart(); }, createPersonaComponents:function(imagelocation,imagename){ var imagewrapperdiv=document.createElementNS("http://www.w3.org/1999/xhtml","html:div"); imagewrapperdiv.setAttribute("class","imagewrapperdiv"); var namespan = document.createElement("box"); namespan.setAttribute("class","serdo imagespan"); namespan.setAttribute("ondblclick","PersonasWindow.ondoubleclick(event)"); namespan.setAttribute("onclick","PersonaWindowSelectManager.clicklistener(event)"); namespan.appendChild(document.createTextNode(imagename)); namespan.setAttribute("style","display:block;height:"+(document.defaultView.getComputedStyle(namespan, null).getPropertyValue("line-height"))+";"); var imagenameanchor = namespan; var imageelement=document.createElement("image"); imageelement.setAttribute("src",PersonasWindow.assignFileURIToImage(imagelocation)); imageelement.setAttribute("class","personasrotatorimage"); imageelement.setAttribute("onclick","PersonaWindowSelectManager.clicklistener(event)"); imageelement.setAttribute("tooltiptext",imagename); imageelement.setAttribute("width","157"); imageelement.setAttribute("height","150"); imageelement.setAttribute("ondblclick","PersonasWindow.ondoubleclick(event)"); imageelement.setAttribute("filename",imagelocation); imagewrapperdiv.appendChild(imageelement); imagewrapperdiv.appendChild(imagenameanchor); return imagewrapperdiv; }, assignFileURIToImage:function(filename){ if (filename==undefined || filename==null ) return; var file=PersonasWindow.getChromeFile(filename); var ios = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var URL = ios.newFileURI(file); return URL.spec; }, addClass:function(domnode, passedclass){ if (!PersonasWindow.hasClass(domnode, passedclass)){ if (domnode.className==""){domnode.className = passedclass;} else{domnode.className+=" "+passedclass;} } }, ondoubleclick:function (event) { if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;}; var intendednode=PersonasWindow.hasClass(event.target,"serdo") ? event.target.previousSibling : event.target; PersonasWindow.showitem(intendednode); event.stopPropagation(); }, newsondoubleclick:function(node){ if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;}; var intendednode=PersonasWindow.hasClass(node,"serdo") ? node.previousSibling.previousSibling : node; var siteuri=intendednode.siteuri; if (window.opener!=undefined && window.opener.gBrowser!=undefined){ window.opener.gBrowser.selectedTab = window.opener.gBrowser.addTab(siteuri); window.opener.focus(); } else { var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var enumerator = wm.getEnumerator("navigator:browser"); var win=null; while(enumerator.hasMoreElements()) { win = enumerator.getNext(); break; } if (win!=null){ win.gBrowser.selectedTab = win.gBrowser.addTab(siteuri); win.focus(); } else { PersonasWindow.createAlertPrompt(PersonasWindow.STRINGS.getString("noBrowserWindowWarning")); } } }, showitem:function (node) { node=PersonasWindow.hasClass(node,"serdo") ? node.previousSibling : node; if(PersonasWindow.hasClass(node,"newsimage")) {PersonasWindow.newsondoubleclick(node);return;} var chosenthumbfilename=node.getAttribute("filename"); var filename=PersonasWindow.createPersonaImageNameFromThumbImageName(chosenthumbfilename); if (window.opener!=undefined && window.opener.PersonasRotator!=undefined){ window.opener.PersonasRotator.currentimagefilename=filename; window.opener.PersonasRotator.imagespecified='yes'; window.opener.PersonasRotator.newimage.src=window.opener.PersonasRotator.assignFileURIToImage(filename); //window.opener.gBrowser.selectedTab = window.opener.gBrowser.addTab(PersonasWindow.openTabURI); //window.opener.focus(); var prefsinstance = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); var previewrequestalertshowable = prefsinstance.getBoolPref("extensions.personasrotator.previewrequestalertshowable"); if (previewrequestalertshowable) { check = {value: false}; var prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService); prompt.alertCheck(null,"Personas Rotator",PersonasWindow.STRINGS.getString("previewRequestAlertWarning"),PersonasWindow.STRINGS.getString("dontShowAgain"),check); if(check.value){ prefsinstance.setBoolPref("extensions.personasrotator.previewrequestalertshowable", false); } } var previewRequestObject={filename:filename} window.opener.PersonasRotator.previewThePersonaOnDesktop(previewRequestObject); } else { var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var enumerator = wm.getEnumerator("navigator:browser"); var win=null; while(enumerator.hasMoreElements()) { win = enumerator.getNext(); break; } if (win!=null){ win.PersonasRotator.currentimagefilename=filename; win.PersonasRotator.imagespecified='yes'; win.PersonasRotator.newimage.src=node.getAttribute("src"); //win.gBrowser.selectedTab = win.gBrowser.addTab(PersonasWindow.openTabURI); //win.focus(); var prefsinstance = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); var previewrequestalertshowable = prefsinstance.getBoolPref("extensions.personasrotator.previewrequestalertshowable"); if (previewrequestalertshowable) { check = {value: false}; var prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService); prompt.alertCheck(null,"Personas Rotator",PersonasWindow.STRINGS.getString("previewRequestAlertWarning"),PersonasWindow.STRINGS.getString("dontShowAgain"),check); if(check.value){ prefsinstance.setBoolPref("extensions.personasrotator.previewrequestalertshowable", false); } } var previewRequestObject={filename:filename} win.opener.PersonasRotator.previewThePersonaOnDesktop(previewRequestObject); } else { PersonasWindow.createAlertPrompt(PersonasWindow.STRINGS.getString("noBrowserWindowWarning")); } } }, uploaditem:function (node) { node=PersonasWindow.hasClass(node,"serdo") ? node.previousSibling : node; if(PersonasWindow.hasClass(node,"newsimage")) {PersonasWindow.newsondoubleclick(node);return;} var chosenthumbfilename=node.getAttribute("filename"); var filename=PersonasWindow.createPersonaImageNameFromThumbImageName(chosenthumbfilename); if (window.opener!=undefined && window.opener.PersonasRotator!=undefined){ window.opener.PersonasRotator.currentimagefilename=filename; window.opener.PersonasRotator.imagespecified='yes'; window.opener.PersonasRotator.uploadrequested='yes'; window.opener.PersonasRotator.newimage.src=node.getAttribute("src"); window.opener.gBrowser.selectedTab = window.opener.gBrowser.addTab(PersonasWindow.openTabURI); window.opener.focus(); } else { var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var enumerator = wm.getEnumerator("navigator:browser"); var win=null; while(enumerator.hasMoreElements()) { win = enumerator.getNext(); break; } if (win!=null){ win.PersonasRotator.currentimagefilename=filename; win.PersonasRotator.imagespecified='yes'; win.PersonasRotator.uploadrequested='yes'; win.PersonasRotator.newimage.src=node.getAttribute("src"); win.gBrowser.selectedTab = win.gBrowser.addTab(PersonasWindow.openTabURI); win.focus(); } else { PersonasWindow.createAlertPrompt(PersonasWindow.STRINGS.getString("noBrowserWindowWarning")); } } }, pasteTheCopiedImages:function (origin) { if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;}; if (0==PersonaWindowSelectManager.highlighteds.length) return; PersonasWindow.copypasteprocessingstate=true; if(origin=="button"){ var collectioname=PersonasWindow.retrieveButtonName(document.popupNode); } else { var collectioname=decodeURI(document.getElementsByClassName("active")[0].getAttribute("id").replace(/htmldiv$/,"")); } for (var i=0;i<PersonaWindowSelectManager.highlighteds.length;i++) { var node=PersonaWindowSelectManager.highlighteds[i]; var toBeCopiedThumbfilename=node.getAttribute("filename"); var toBeCopiedPersonaImagefilename=PersonasWindow.createPersonaImageNameFromThumbImageName(toBeCopiedThumbfilename); var destinationFilenameToSaveTheCopyImage=collectioname+"/"+"Personas"+"/"+PersonasWindow.getTheLeafNameFromFileNameString(toBeCopiedPersonaImagefilename); var destinationFilenameToSaveTheCopyImage=PersonasWindow.checkNameCollison(destinationFilenameToSaveTheCopyImage); PersonasWindow.copyThePersonaImageForPasteCommand(toBeCopiedPersonaImagefilename,destinationFilenameToSaveTheCopyImage); var destinationThumbImagefileame=collectioname+"/"+"Thumbs/Thumb_"+PersonasWindow.getTheLeafNameFromFileNameString(destinationFilenameToSaveTheCopyImage); PersonasWindow.copyTheThumbImageForPasteCommand(toBeCopiedPersonaImagefilename,destinationThumbImagefileame); PersonasWindow.copyTheRDFForPasteCommand(toBeCopiedPersonaImagefilename,destinationFilenameToSaveTheCopyImage,"copy"); var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var copynode=PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(toBeCopiedPersonaImagefilename)); var imageResource=copynode; var imagenamePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#name"); var imagenametarget=ds.GetTarget(imageResource,imagenamePredicate,true); if (imagenametarget) { var imagename = imagenametarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagedefaultPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#default"); var imagedefaulttarget=ds.GetTarget(imageResource,imagedefaultPredicate,true); if (imagedefaulttarget) { var imagedefault = imagedefaulttarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagelocation = PersonasWindow.getTheLeafNameFromFileNameString(destinationFilenameToSaveTheCopyImage); var imagedescriptionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#description"); var imagedescriptiontarget=ds.GetTarget(imageResource,imagedescriptionPredicate,true); if (imagedescriptiontarget) { var imagedescription = imagedescriptiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagepositionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#position"); var imagepositiontarget=ds.GetTarget(imageResource,imagepositionPredicate,true); if (imagepositiontarget) { var imageposition = imagepositiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagetagsPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#tags"); var imagetagstarget=ds.GetTarget(imageResource,imagetagsPredicate,true); if (imagetagstarget) { var imagetags = imagetagstarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imageversionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#version"); var imageversiontarget=ds.GetTarget(imageResource,imageversionPredicate,true); if (imageversiontarget) { var imageversion = imageversiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imageuploadedPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#uploaded"); var imageuploadedtarget=ds.GetTarget(imageResource,imageuploadedPredicate,true); if (imageuploadedtarget) { var imageuploaded = imageuploadedtarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagesiteURIPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#siteuri"); var imagesiteURItarget=ds.GetTarget(imageResource,imagesiteURIPredicate,true); if (imagesiteURItarget) { var imagesiteURI = imagesiteURItarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagesourcePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#source"); var imagesourcetarget=ds.GetTarget(imageResource,imagesourcePredicate,true); if (imagesourcetarget) { var imagesource = imagesourcetarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagescreenResPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#screenres"); var imagescreenRestarget=ds.GetTarget(imageResource,imagescreenResPredicate,true); if (imagescreenRestarget) { var imagescreenRes = imagescreenRestarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagebackgroundColorPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#backgroundcolor"); var imagebackgroundColortarget=ds.GetTarget(imageResource,imagebackgroundColorPredicate,true); if (imagebackgroundColortarget) { var imagebackgroundColor = imagebackgroundColortarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var newnode=PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(destinationFilenameToSaveTheCopyImage)); imagetags=PersonasWindow.returnCopyTagString(imagetags,destinationFilenameToSaveTheCopyImage.split("/")[0]); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#name" ),PersonasRotatorRDF.rdfService.GetLiteral( imagename ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#default" ),PersonasRotatorRDF.rdfService.GetLiteral( imagedefault ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#description" ),PersonasRotatorRDF.rdfService.GetLiteral( imagedescription ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#location" ),PersonasRotatorRDF.rdfService.GetLiteral( imagelocation ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#position" ),PersonasRotatorRDF.rdfService.GetLiteral( imageposition ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#tags" ),PersonasRotatorRDF.rdfService.GetLiteral(imagetags ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#version" ),PersonasRotatorRDF.rdfService.GetLiteral( imageversion),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#uploaded" ),PersonasRotatorRDF.rdfService.GetLiteral( imageuploaded),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#siteuri" ),PersonasRotatorRDF.rdfService.GetLiteral( imagesiteURI),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#source" ),PersonasRotatorRDF.rdfService.GetLiteral( imagesource),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#screenres" ),PersonasRotatorRDF.rdfService.GetLiteral( imagescreenRes),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#backgroundcolor" ),PersonasRotatorRDF.rdfService.GetLiteral( imagebackgroundColor),true); var mainSeq=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(ds,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:"+PersonasWindow.createEncodedName(collectioname)+"backs")); mainSeq.AppendElement(newnode); ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); var dsx=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getTheURIFromFileName(PersonasWindow.createCollectionRDfFileName(destinationFilenameToSaveTheCopyImage))); var newnode2=PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+destinationFilenameToSaveTheCopyImage); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#name" ),PersonasRotatorRDF.rdfService.GetLiteral( imagename ),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#default" ),PersonasRotatorRDF.rdfService.GetLiteral( imagedefault ),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#description" ),PersonasRotatorRDF.rdfService.GetLiteral( imagedescription ),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#location" ),PersonasRotatorRDF.rdfService.GetLiteral( imagelocation ),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#position" ),PersonasRotatorRDF.rdfService.GetLiteral( imageposition ),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#tags" ),PersonasRotatorRDF.rdfService.GetLiteral( imagetags ),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#version" ),PersonasRotatorRDF.rdfService.GetLiteral( imageversion),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#uploaded" ),PersonasRotatorRDF.rdfService.GetLiteral( imageuploaded),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#siteuri" ),PersonasRotatorRDF.rdfService.GetLiteral( imagesiteURI),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#source" ),PersonasRotatorRDF.rdfService.GetLiteral( imagesource),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#screenres" ),PersonasRotatorRDF.rdfService.GetLiteral( imagescreenRes),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#backgroundcolor" ),PersonasRotatorRDF.rdfService.GetLiteral( imagebackgroundColor),true); var mainSeq2=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(dsx,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:"+PersonasWindow.createEncodedName(collectioname)+"backs")); mainSeq2.AppendElement(newnode2); dsx.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); if(origin=="button") { if (document.popupNode.getAttribute("clicked")=="true") { var chosenbuttonname=document.popupNode.getAttribute("id").replace(/button$/,""); var relatedhtmldiv=document.getElementById(chosenbuttonname+"htmldiv"); var smallimagewrapperdiv = PersonaWindowSelectManager.highlighteds[i].parentNode; var smallimagewrapperdivclone = smallimagewrapperdiv.cloneNode(true); var imagenode=smallimagewrapperdivclone.getElementsByTagName("image")[0]; PersonasWindow.removeClass(imagenode,"highlighted"); imagenode.setAttribute("filename",destinationThumbImagefileame); imagenode.setAttribute("src",PersonasWindow.assignFileURIToImage(destinationThumbImagefileame)); imagenode.setAttribute("tooltiptext",imagename); if(document.popupNode.hasAttribute("fillspaceleft")) { if(PersonasWindow.fillspacestate && PersonasWindow.hasClass(relatedhtmldiv,"active")){ PersonasWindow.fillspacebackuparray.push(smallimagewrapperdivclone); } } else { if(PersonasWindow.fillspacestate && PersonasWindow.hasClass(relatedhtmldiv,"active")){ PersonasWindow.fillspacebackuparray.push(smallimagewrapperdivclone); } else if(!PersonasWindow.fillspacestate && PersonasWindow.hasClass(relatedhtmldiv,"active")){ relatedhtmldiv.appendChild(smallimagewrapperdivclone); } else if(PersonasWindow.fillspacestate && !PersonasWindow.hasClass(relatedhtmldiv,"active")){ relatedhtmldiv.appendChild(smallimagewrapperdivclone); } else if(!PersonasWindow.fillspacestate && !PersonasWindow.hasClass(relatedhtmldiv,"active")){ relatedhtmldiv.appendChild(smallimagewrapperdivclone); } } } } else { var relatedhtmldiv=document.getElementById(encodeURI(collectioname)+"htmldiv"); var smallimagewrapperdiv = PersonaWindowSelectManager.highlighteds[i].parentNode; var smallimagewrapperdivclone = smallimagewrapperdiv.cloneNode(true); var imagenode=smallimagewrapperdivclone.getElementsByTagName("image")[0]; PersonasWindow.removeClass(imagenode,"highlighted"); imagenode.setAttribute("filename",destinationThumbImagefileame); imagenode.setAttribute("src",PersonasWindow.assignFileURIToImage(destinationThumbImagefileame)); imagenode.setAttribute("tooltiptext",imagename); relatedhtmldiv.appendChild(smallimagewrapperdivclone); var aScrollboxElement = document.getElementById('personapools'); var xpcomInterface = aScrollboxElement.boxObject.QueryInterface(Components.interfaces.nsIScrollBoxObject); } } var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var enumerator = wm.getEnumerator("navigator:browser"); var windows=[]; while(enumerator.hasMoreElements()) { win = enumerator.getNext(); windows.push(win); } if (windows.length!=0){ windows[0].PersonasRotator.personaimagesarraymaker(); } else { //do nothing } for (var i=0;i<windows.length;i++) { if (i==0) continue; windows[i].PersonasRotator.personasrotator=windows[0].PersonasRotator.personasrotator; } for (var i=0;i<PersonaWindowSelectManager.highlighteds.length;i++){ PersonasWindow.removeClass(PersonaWindowSelectManager.highlighteds[i],"highlighted"); } PersonaWindowSelectManager.highlighteds=[]; PersonasWindow.copystate=false; PersonasWindow.updateModeOn=false; PersonasWindow.copypasteprocessingstate=false; }, retrieveButtonName:function(node){ return decodeURI(node.getAttribute("id").replace(/button$/,"")); }, copyThePersonaImageForPasteCommand:function (toBeCopiedPersonaImagefilename,destinationPersonaImagefilename) { var fileToCopy=PersonasWindow.getChromeFile(toBeCopiedPersonaImagefilename); var destinationDirectroyToCopyImageIn=PersonasWindow.getAppropriateCollectionDirectoryFromFileName(destinationPersonaImagefilename); fileToCopy.copyTo(destinationDirectroyToCopyImageIn,PersonasWindow.getTheLeafNameFromFileNameString(destinationPersonaImagefilename)); }, copyTheThumbImageForPasteCommand:function(toBeCopiedPersonaImagefilename,destinationThumbImagefilename) { var thumbImageToBeCopied=PersonasWindow.getThumbFile(toBeCopiedPersonaImagefilename); var destinationDirectroyToCopyThumbImageIn=PersonasWindow.getAppropriateCollectionDirectoryFromFileName(destinationThumbImagefilename); thumbImageToBeCopied.copyTo(destinationDirectroyToCopyThumbImageIn,PersonasWindow.getTheLeafNameFromFileNameString(destinationThumbImagefilename)); }, changeFileExtension:function(filename,extension){ var array=filename.split("."); var imageextension=array[array.length-1]; return filename.replace("."+imageextension,"."+extension) }, copyTheRDFForPasteCommand:function(toBeCopiedPersonaImagefilename,destinationFilenameToSaveTheCopyOrCutImage,copyorcut) { var destinationRDFImagefilename=destinationFilenameToSaveTheCopyOrCutImage.split("/")[0]+"/"+"RDFs/"+PersonasWindow.getTheLeafNameFromFileNameString(destinationFilenameToSaveTheCopyOrCutImage)+".rdf"; var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var copynode=PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(toBeCopiedPersonaImagefilename)); var imageResource=copynode; var imagenamePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#name"); var imagenametarget=ds.GetTarget(imageResource,imagenamePredicate,true); if (imagenametarget) { var imagename = imagenametarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagedefaultPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#default"); var imagedefaulttarget=ds.GetTarget(imageResource,imagedefaultPredicate,true); if (imagedefaulttarget) { var imagedefault = imagedefaulttarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagedescriptionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#description"); var imagedescriptiontarget=ds.GetTarget(imageResource,imagedescriptionPredicate,true); if (imagedescriptiontarget) { var imagedescription = imagedescriptiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagepositionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#position"); var imagepositiontarget=ds.GetTarget(imageResource,imagepositionPredicate,true); if (imagepositiontarget) { var imageposition = imagepositiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagetagsPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#tags"); var imagetagstarget=ds.GetTarget(imageResource,imagetagsPredicate,true); if (imagetagstarget) { var imagetags = imagetagstarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imageversionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#version"); var imageversiontarget=ds.GetTarget(imageResource,imageversionPredicate,true); if (imageversiontarget) { var imageversion = imageversiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imageuploadedPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#uploaded"); var imageuploadedtarget=ds.GetTarget(imageResource,imageuploadedPredicate,true); if (imageuploadedtarget) { var imageuploaded = imageuploadedtarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagesiteURIPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#siteuri"); var imagesiteURItarget=ds.GetTarget(imageResource,imagesiteURIPredicate,true); if (imagesiteURItarget) { var imagesiteURI = imagesiteURItarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagesourcePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#source"); var imagesourcetarget=ds.GetTarget(imageResource,imagesourcePredicate,true); if (imagesourcetarget) { var imagesource = imagesourcetarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagescreenResPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#screenres"); var imagescreenRestarget=ds.GetTarget(imageResource,imagescreenResPredicate,true); if (imagescreenRestarget) { var imagescreenRes = imagescreenRestarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagebackgroundColorPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#backgroundcolor"); var imagebackgroundColortarget=ds.GetTarget(imageResource,imagebackgroundColorPredicate,true); if (imagebackgroundColortarget) { var imagebackgroundColor = imagebackgroundColortarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var nameForImage = imagename.replace(/&/g,"&"); var locationForImage =PersonasWindow.getTheLeafNameFromFileNameString(destinationFilenameToSaveTheCopyOrCutImage).replace(/&/g,"&"); var descriptionForImage = imagedescription.replace(/&/g,"&"); var positionForImage = imageposition.replace(/&/g,"&"); var defaultForImage = imagedefault.replace(/&/g,"&"); var tagsForImage = (copyorcut=="copy") ? PersonasWindow.returnCopyTagString(imagetags,destinationFilenameToSaveTheCopyOrCutImage.split("/")[0]).replace(/&/g,"&") : PersonasWindow.returnCutTagString(imagetags,toBeCopiedPersonaImagefilename.split("/")[0],destinationRDFImagefilename.split("/")[0]).replace(/&/g,"&"); var versionForImage = imageversion.replace(/&/g,"&"); var uploadedForImage = imageuploaded.replace(/&/g,"&"); var siteURIForImage = imagesiteURI.replace(/&/g,"&"); var sourceForImage = imagesource.replace(/&/g,"&"); var screenResForImage = imagescreenRes.replace(/&/g,"&"); var backgroundColorForImage = imagebackgroundColor.replace(/&/g,"&"); var RDFstring='<?xml version="1.0"?>'+'<RDF:RDF xmlns:personasrotator="urn:personasrotator#" xmlns:NC="http://home.netscape.com/NC-rdf#" xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">'+ '<RDF:Description RDF:about="'+(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(destinationFilenameToSaveTheCopyOrCutImage)).replace(/&/g,"&")+'">'+ '<personasrotator:name>'+nameForImage.replace(/>/g,">").replace(/</g,"<")+'</personasrotator:name>'+ '<personasrotator:location>'+locationForImage.replace(/>/g,">").replace(/</g,"<")+'</personasrotator:location>'+ '<personasrotator:description>'+descriptionForImage.replace(/>/g,">").replace(/</g,"<")+'</personasrotator:description>'+ '<personasrotator:position>'+positionForImage.replace(/>/g,">").replace(/</g,"<")+'</personasrotator:position>'+ '<personasrotator:default>'+defaultForImage.replace(/>/g,">").replace(/</g,"<")+'</personasrotator:default>'+ '<personasrotator:tags>'+tagsForImage.replace(/>/g,">").replace(/</g,"<")+'</personasrotator:tags>'+ '<personasrotator:version>'+versionForImage.replace(/>/g,">").replace(/</g,"<")+'</personasrotator:version>'+ '<personasrotator:uploaded>'+uploadedForImage.replace(/>/g,">").replace(/</g,"<")+'</personasrotator:uploaded>'+ '<personasrotator:siteuri>'+siteURIForImage.replace(/>/g,">").replace(/</g,"<")+'</personasrotator:siteuri>'+ '<personasrotator:source>'+sourceForImage.replace(/>/g,">").replace(/</g,"<")+'</personasrotator:source>'+ '<personasrotator:screenres>'+screenResForImage.replace(/>/g,">").replace(/</g,"<")+'</personasrotator:screenres>'+ '<personasrotator:backgroundcolor>'+backgroundColorForImage.replace(/>/g,">").replace(/</g,"<")+'</personasrotator:backgroundcolor>'+ '</RDF:Description></RDF:RDF>'; var emptyRDFnsiFile=PersonasWindow.getChromeFile(destinationRDFImagefilename); PersonasRotatorFileIO.write(emptyRDFnsiFile,RDFstring,"w","UTF-8"); }, alreadyInTags: function(passedimagetags,passedcollename) { var tagsArray=passedimagetags.split(","); var tag; for (var i=0;i<tagsArray.length;i++) { tag=tagsArray[i]; if(tag.replace(/^\s+|\s+$/g, '')=="") continue; if(tag.toLowerCase()==passedcollename.toLowerCase()) { return true; } } return false; }, returnCopyTagString:function(passedimagetags,passedcollename){ if(PersonasWindow.alreadyInTags(passedimagetags,passedcollename)) return passedimagetags; else return (passedimagetags+","+passedcollename); }, returnCutTagString:function(passedimagetags,passedToBeCutCollename,destinationCollename){ if(PersonasWindow.alreadyInTags(passedimagetags,destinationCollename)) { var tagsArray=passedimagetags.split(","); var textLiteral=""; var tag; for (var i=0;i<tagsArray.length;i++) { tag=tagsArray[i]; if(tag.replace(/^\s+|\s+$/g,'')=="") continue; if(tag.toLowerCase()==passedToBeCutCollename.toLowerCase()) { if(i==tagsArray.length-1) {textLiteral=textLiteral.replace(/,$/,"");} continue; } textLiteral+=tag+(i!=tagsArray.length-1 ? "," : ""); } return textLiteral; } else { passedimagetags=destinationCollename+","+passedimagetags; var tagsArray=passedimagetags.split(","); var textLiteral=""; var tag; for (var i=0;i<tagsArray.length;i++) { tag=tagsArray[i]; if(tag.replace(/^\s+|\s+$/g,'')=="") continue; if(tag.toLowerCase()==passedToBeCutCollename.toLowerCase()) { if(i==tagsArray.length-1) {textLiteral=textLiteral.replace(/,$/,"");} continue; } textLiteral+=tag+(i!=tagsArray.length-1 ? "," : ""); } return textLiteral; } }, pasteTheCutImages:function (origin) { if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;}; if (0==PersonaWindowSelectManager.highlighteds.length) return; PersonasWindow.cutpasteprocessingstate=true; if(origin=="button"){ var collectioname=PersonasWindow.retrieveButtonName(document.popupNode); } else { var collectioname=decodeURI(document.getElementsByClassName("active")[0].getAttribute("id").replace(/htmldiv$/,"")); } for (var i=0;i<PersonaWindowSelectManager.highlighteds.length;i++) { var node=PersonaWindowSelectManager.highlighteds[i]; var toBeCutThumbfilename=node.getAttribute("filename"); var toBeCutPersonaImagefilename=PersonasWindow.createPersonaImageNameFromThumbImageName(toBeCutThumbfilename); var destinationFilenameToSaveTheCutImage=collectioname+"/"+"Personas"+"/"+PersonasWindow.getTheLeafNameFromFileNameString(toBeCutPersonaImagefilename); var destinationFilenameToSaveTheCutImage=PersonasWindow.checkNameCollison(destinationFilenameToSaveTheCutImage); PersonasWindow.cutThePersonaImageForPasteCommand(toBeCutPersonaImagefilename,destinationFilenameToSaveTheCutImage); var destinationThumbImagefileame=collectioname+"/"+"Thumbs/Thumb_"+PersonasWindow.getTheLeafNameFromFileNameString(destinationFilenameToSaveTheCutImage); PersonasWindow.cutTheThumbImageForPasteCommand(toBeCutPersonaImagefilename,destinationThumbImagefileame); PersonasWindow.copyTheRDFForPasteCommand(toBeCutPersonaImagefilename,destinationFilenameToSaveTheCutImage,"cut"); var oldRDFnsiFile=PersonasWindow.getChromeFile(PersonasWindow.createIndividualRDFFilename(toBeCutPersonaImagefilename)); oldRDFnsiFile.remove(false); var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var cutnode=PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(toBeCutPersonaImagefilename)); var imageResource=cutnode; var imagenamePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#name"); var imagenametarget=ds.GetTarget(imageResource,imagenamePredicate,true); if (imagenametarget) { var imagename = imagenametarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagedefaultPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#default"); var imagedefaulttarget=ds.GetTarget(imageResource,imagedefaultPredicate,true); if (imagedefaulttarget) { var imagedefault = imagedefaulttarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagelocation = PersonasWindow.getTheLeafNameFromFileNameString(destinationFilenameToSaveTheCutImage); var imagedescriptionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#description"); var imagedescriptiontarget=ds.GetTarget(imageResource,imagedescriptionPredicate,true); if (imagedescriptiontarget) { var imagedescription = imagedescriptiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagepositionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#position"); var imagepositiontarget=ds.GetTarget(imageResource,imagepositionPredicate,true); if (imagepositiontarget) { var imageposition = imagepositiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagetagsPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#tags"); var imagetagstarget=ds.GetTarget(imageResource,imagetagsPredicate,true); if (imagetagstarget) { var imagetags = imagetagstarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imageversionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#version"); var imageversiontarget=ds.GetTarget(imageResource,imageversionPredicate,true); if (imageversiontarget) { var imageversion = imageversiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imageuploadedPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#uploaded"); var imageuploadedtarget=ds.GetTarget(imageResource,imageuploadedPredicate,true); if (imageuploadedtarget) { var imageuploaded = imageuploadedtarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagesiteURIPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#siteuri"); var imagesiteURItarget=ds.GetTarget(imageResource,imagesiteURIPredicate,true); if (imagesiteURItarget) { var imagesiteURI = imagesiteURItarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagesourcePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#source"); var imagesourcetarget=ds.GetTarget(imageResource,imagesourcePredicate,true); if (imagesourcetarget) { var imagesource = imagesourcetarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagescreenResPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#screenres"); var imagescreenRestarget=ds.GetTarget(imageResource,imagescreenResPredicate,true); if (imagescreenRestarget) { var imagescreenRes = imagescreenRestarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagebackgroundColorPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#backgroundcolor"); var imagebackgroundColortarget=ds.GetTarget(imageResource,imagebackgroundColorPredicate,true); if (imagebackgroundColortarget) { var imagebackgroundColor = imagebackgroundColortarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var newnode=PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(destinationFilenameToSaveTheCutImage)); imagetags=PersonasWindow.returnCutTagString(imagetags,toBeCutPersonaImagefilename.split("/")[0],destinationFilenameToSaveTheCutImage.split("/")[0]); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#name" ),PersonasRotatorRDF.rdfService.GetLiteral( imagename ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#default" ),PersonasRotatorRDF.rdfService.GetLiteral( imagedefault ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#description" ),PersonasRotatorRDF.rdfService.GetLiteral( imagedescription ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#location" ),PersonasRotatorRDF.rdfService.GetLiteral( imagelocation ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#position" ),PersonasRotatorRDF.rdfService.GetLiteral( imageposition ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#tags" ),PersonasRotatorRDF.rdfService.GetLiteral( imagetags ),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#version" ),PersonasRotatorRDF.rdfService.GetLiteral( imageversion),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#uploaded" ),PersonasRotatorRDF.rdfService.GetLiteral( imageuploaded),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#siteuri" ),PersonasRotatorRDF.rdfService.GetLiteral( imagesiteURI),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#source" ),PersonasRotatorRDF.rdfService.GetLiteral( imagesource),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#screenres" ),PersonasRotatorRDF.rdfService.GetLiteral( imagescreenRes),true); ds.Assert(newnode,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#backgroundcolor" ),PersonasRotatorRDF.rdfService.GetLiteral( backgroundColor),true); var mainSeq=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(ds,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:"+PersonasWindow.createEncodedName(collectioname)+"backs")); mainSeq.AppendElement(newnode); ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); var dsx=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getTheURIFromFileName(PersonasWindow.createCollectionRDfFileName(destinationFilenameToSaveTheCutImage))); var newnode2=PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(destinationFilenameToSaveTheCutImage)); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#name" ),PersonasRotatorRDF.rdfService.GetLiteral( imagename ),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#default" ),PersonasRotatorRDF.rdfService.GetLiteral( imagedefault ),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#description" ),PersonasRotatorRDF.rdfService.GetLiteral( imagedescription ),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#location" ),PersonasRotatorRDF.rdfService.GetLiteral( imagelocation ),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#position" ),PersonasRotatorRDF.rdfService.GetLiteral( imageposition ),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#tags" ),PersonasRotatorRDF.rdfService.GetLiteral( imagetags ),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#version" ),PersonasRotatorRDF.rdfService.GetLiteral( imageversion),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#uploaded" ),PersonasRotatorRDF.rdfService.GetLiteral( imageuploaded),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#siteuri" ),PersonasRotatorRDF.rdfService.GetLiteral( imagesiteURI),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#source" ),PersonasRotatorRDF.rdfService.GetLiteral( imagesource),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#screenres" ),PersonasRotatorRDF.rdfService.GetLiteral( imagescreenRes),true); dsx.Assert(newnode2,PersonasRotatorRDF.rdfService.GetResource( "urn:personasrotator#backgroundcolor" ),PersonasRotatorRDF.rdfService.GetLiteral( backgroundColor),true); var mainSeq2=PersonasRotatorRDF.rdfContainerUtils.MakeSeq(dsx,PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator:"+PersonasWindow.createEncodedName(collectioname)+"backs")); mainSeq2.AppendElement(newnode2); dsx.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); var uri=PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(toBeCutPersonaImagefilename); var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var rdfnode = PersonasRotatorRDF.rdfService.GetResource(uri); var resourceNode=rdfnode; PersonasWindow.removeChildren(ds,resourceNode,false); var predicatesIn=ds.ArcLabelsIn(resourceNode); while (predicatesIn.hasMoreElements()){ var predicateIn=predicatesIn.getNext(); var source=ds.GetSource(predicateIn,resourceNode,true); ds.Unassert(source,predicateIn,resourceNode); } PersonasWindow.removeRelatedImageNodeFromCollectionDatabase(toBeCutPersonaImagefilename); PersonasWindow.removeImageFromCollectionDOMTree(node.parentNode,"cut"); if(origin=="button") { if (document.popupNode.getAttribute("clicked")=="true") { var chosenbuttonname=document.popupNode.getAttribute("id").replace(/button$/,""); var relatedhtmldiv=document.getElementById(chosenbuttonname+"htmldiv"); var smallimagewrapperdiv = PersonaWindowSelectManager.highlighteds[i].parentNode; var smallimagewrapperdivclone = smallimagewrapperdiv.cloneNode(true); var imagenode=smallimagewrapperdivclone.getElementsByTagName("image")[0]; PersonasWindow.removeClass(imagenode,"highlighted"); imagenode.setAttribute("filename",destinationThumbImagefileame); imagenode.setAttribute("src",PersonasWindow.assignFileURIToImage(destinationThumbImagefileame)); imagenode.setAttribute("tooltiptext",imagename); if(document.popupNode.hasAttribute("fillspaceleft")) { if(PersonasWindow.fillspacestate && PersonasWindow.hasClass(relatedhtmldiv,"active")){ PersonasWindow.fillspacebackuparray.push(smallimagewrapperdivclone); } } else { if(PersonasWindow.fillspacestate && PersonasWindow.hasClass(relatedhtmldiv,"active")){ PersonasWindow.fillspacebackuparray.push(smallimagewrapperdivclone); } else if(!PersonasWindow.fillspacestate && PersonasWindow.hasClass(relatedhtmldiv,"active")){ relatedhtmldiv.appendChild(smallimagewrapperdivclone); } else if(PersonasWindow.fillspacestate && !PersonasWindow.hasClass(relatedhtmldiv,"active")){ relatedhtmldiv.appendChild(smallimagewrapperdivclone); } else if(!PersonasWindow.fillspacestate && !PersonasWindow.hasClass(relatedhtmldiv,"active")){ relatedhtmldiv.appendChild(smallimagewrapperdivclone); } } } } else { var relatedhtmldiv=document.getElementById(encodeURI(collectioname)+"htmldiv"); var smallimagewrapperdiv = PersonaWindowSelectManager.highlighteds[i].parentNode; var smallimagewrapperdivclone = smallimagewrapperdiv.cloneNode(true); var imagenode=smallimagewrapperdivclone.getElementsByTagName("image")[0]; PersonasWindow.removeClass(imagenode,"highlighted"); imagenode.setAttribute("filename",destinationThumbImagefileame); imagenode.setAttribute("src",PersonasWindow.assignFileURIToImage(destinationThumbImagefileame)); imagenode.setAttribute("tooltiptext",imagename); relatedhtmldiv.appendChild(smallimagewrapperdivclone); } } if(origin=="button") { var activehtmldiv=document.getElementsByClassName("active")[0]; var totalpersonasnumber=activehtmldiv.childNodes.length; if((totalpersonasnumber%3)==0) activehtmldiv.style.height=((totalpersonasnumber/3)*155)+"px"; if((totalpersonasnumber%3)==1) activehtmldiv.style.height=(Math.round((totalpersonasnumber/3)+0.33)*155)+"px"; if((totalpersonasnumber%3)==2) activehtmldiv.style.height=(Math.round((totalpersonasnumber/3))*155)+"px"; } var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var enumerator = wm.getEnumerator("navigator:browser"); var windows=[]; var win; while(enumerator.hasMoreElements()) { win = enumerator.getNext(); windows.push(win); } if (windows.length!=0){ windows[0].PersonasRotator.personaimagesarraymaker(); } else { //do nothing } for (var i=0;i<windows.length;i++) { if (i==0) continue; windows[i].PersonasRotator.personasrotator=windows[0].PersonasRotator.personasrotator; } for (var i=0;i<PersonaWindowSelectManager.highlighteds.length;i++){ PersonasWindow.removeClass(PersonaWindowSelectManager.highlighteds[i],"highlighted"); } PersonaWindowSelectManager.highlighteds=[]; PersonasWindow.cutstate=false; PersonasWindow.updateModeOn=false; PersonasWindow.cutpasteprocessingstate=false; }, cutThePersonaImageForPasteCommand:function (toBeCutPersonaImagefilename,destinationPersonaImagefilename) { var fileToCut=PersonasWindow.getChromeFile(toBeCutPersonaImagefilename); var destinationDirectroyToCopyImageIn=PersonasWindow.getAppropriateCollectionDirectoryFromFileName(destinationPersonaImagefilename); fileToCut.copyTo(destinationDirectroyToCopyImageIn,PersonasWindow.getTheLeafNameFromFileNameString(destinationPersonaImagefilename)); fileToCut.remove(false); }, cutTheThumbImageForPasteCommand:function(toBeCutPersonaImagefilename,destinationThumbImagefilename) { var thumbImageToBeCut=PersonasWindow.getThumbFile(toBeCutPersonaImagefilename); var destinationDirectroyToCutThumbImageIn=PersonasWindow.getAppropriateCollectionDirectoryFromFileName(destinationThumbImagefilename); thumbImageToBeCut.copyTo(destinationDirectroyToCutThumbImageIn,PersonasWindow.getTheLeafNameFromFileNameString(destinationThumbImagefilename)); thumbImageToBeCut.remove(false); }, activatecopyitem:function () { if(PersonaWindowSelectManager.highlighteds.length==0) {PersonasWindow.createAlertPrompt(PersonasWindow.STRINGS.getFormattedString("noSelectedItemWarning",["copy"]));return;}; PersonasWindow.copystate=true; PersonasWindow.refreshOtherStates("copystate"); }, refreshOtherStates:function(mode){ if (mode=="copystate") {PersonasWindow.copystate=true;} else {PersonasWindow.copystate=false;} if (mode=="cutstate") {PersonasWindow.cutstate=true;} else {PersonasWindow.cutstate=false;} if (mode=="deletestate") {PersonasWindow.deletestate=true;} else {PersonasWindow.deletestate=false;} if (mode=="editstate") {PersonasWindow.editstate=true;} else {PersonasWindow.editstate=false;} }, activatecutitem:function () { if(PersonaWindowSelectManager.highlighteds.length==0) {PersonasWindow.createAlertPrompt(PersonasWindow.STRINGS.getFormattedString("noSelectedItemWarning",["cut"]));return;}; PersonasWindow.cutstate=true; PersonasWindow.refreshOtherStates("cutstate"); }, activatedeleteitem:function () { if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;}; if(PersonaWindowSelectManager.highlighteds.length==0) {PersonasWindow.createAlertPrompt(PersonasWindow.STRINGS.getFormattedString("noSelectedItemWarning",["delete"]));return;}; if(PersonasWindow.createConfirmPrompt(PersonasWindow.STRINGS.getFormattedString("deleteWarning",[(PersonaWindowSelectManager.highlighteds.length!=1 ? "All selected personas" : "Selected persona")]))) { PersonasWindow.deletestate=true; PersonasWindow.refreshOtherStates("deletestate"); PersonasWindow.updateModeOn=true; if (PersonasWindow.deletestate==true) { PersonasWindow.arrayinc=PersonaWindowSelectManager.highlighteds.length-1; PersonasWindow.deleteitemstart(); } } }, activatepasteitem:function (event) { if(PersonaWindowSelectManager.highlighteds.length==0) {PersonasWindow.createAlertPrompt(PersonasWindow.STRINGS.getFormattedString("noSelectedItemWarning",["copy or cut the thumbnail. After that right click on collection button to paste."]));return;}; if(PersonaWindowSelectManager.highlighteds.length>15) { if(PersonasWindow.createConfirmPrompt(PersonasWindow.STRINGS.getString("pasteWarning"))) {return;} } if (document.popupNode.tagName!="label" && document.popupNode.tagName!="stack" && document.popupNode.tagName!="scrollbox" &&document.popupNode.tagName!="html:div") return; var origin=document.popupNode.tagName=="label" ? "button" : "stack"; if (PersonasWindow.copystate==true) { PersonasWindow.pasteTheCopiedImages(origin); } if (PersonasWindow.cutstate==true) { PersonasWindow.pasteTheCutImages(origin); } }, deleteitemstart:function(){ if(PersonasWindow.arrayinc==-1) { var activehtmldiv=document.getElementsByClassName("active")[0]; var totalpersonasnumber=activehtmldiv.childNodes.length; if((totalpersonasnumber%3)==0) activehtmldiv.style.height=((totalpersonasnumber/3)*155)+"px"; if((totalpersonasnumber%3)==1) activehtmldiv.style.height=(Math.round((totalpersonasnumber/3)+0.33)*155)+"px"; if((totalpersonasnumber%3)==2) activehtmldiv.style.height=(Math.round((totalpersonasnumber/3))*155)+"px"; PersonasWindow.arrayinc=0; PersonaWindowSelectManager.highlighteds=[];return; } var itemsleft=PersonaWindowSelectManager.highlighteds.length-PersonasWindow.arrayinc; window.setTimeout(function(){ var node=PersonaWindowSelectManager.highlighteds[PersonasWindow.arrayinc]; (PersonasWindow.arrayinc!=0) ? PersonasWindow.deleteitem(node) : PersonasWindow.lastdeleteitemfunction(node,true); },1); }, lastdeleteitemfunction:function(node,last){ PersonasWindow.deleteitem(node,last); PersonasWindow.deletestate=false; PersonasWindow.arrayinc=0; PersonasWindow.updateModeOn=false; }, buttonpopupshow:function (event) { var nsIPopupBoxObject = Components.interfaces.nsIPopupBoxObject; event.target.popupBoxObject.setConsumeRollupEvent(nsIPopupBoxObject.ROLLUP_NO_CONSUME); if (document.popupNode.tagName!="label") return; if (PersonasWindow.copystate==true || PersonasWindow.cutstate==true ) { document.getElementById("button-paste").removeAttribute("disabled"); if(PersonaWindowSelectManager.highlighteds[0]==undefined) {PersonasWindow.createAlertPrompt(PersonasWindow.STRINGS.getString("thereIsNoItemSelected"));event.preventDefault();return;} if(PersonaWindowSelectManager.highlighteds[0].parentNode.parentNode.id.replace(/htmldiv$/,"")==document.popupNode.id.replace(/button$/,"")) document.getElementById("button-paste").setAttribute("disabled","true"); } else { document.getElementById("button-paste").setAttribute("disabled","true"); } event.stopPropagation(); }, xxx :function(){ //obsolete method }, each:function(array,func){ //obsolete method }, scrollfinder:function(domnode){ //obsolete method }, handleeditclick:function (node) { node=PersonasWindow.hasClass(node,"serdo") ? node.previousSibling : node; if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;}; PersonasWindow.editstate=true; PersonasWindow.refreshOtherStates("editstate"); var activecollectionname=node.parentNode.parentNode.getAttribute("id").replace(/htmldiv$/,""); var chosenthumbfilename=node.getAttribute("filename"); var filename=PersonasWindow.createPersonaImageNameFromThumbImageName(chosenthumbfilename); var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var uri=PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename); var imageResource = PersonasRotatorRDF.rdfService.GetResource(uri); var imagenamePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#name"); var imagenametarget=ds.GetTarget(imageResource,imagenamePredicate,true); if (imagenametarget) { var imagename = imagenametarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagetagsPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#tags"); var imagetagstarget=ds.GetTarget(imageResource,imagetagsPredicate,true); if (imagetagstarget) { var imagetags = imagetagstarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagedescriptionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#description"); var imagedescriptiontarget=ds.GetTarget(imageResource,imagedescriptionPredicate,true); if (imagedescriptiontarget) { var imagedescription = imagedescriptiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagelocationPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#location"); var imagelocationtarget=ds.GetTarget(imageResource,imagelocationPredicate,true); if (imagelocationtarget) { var imagelocation = imagelocationtarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } PersonasWindow.createNewEditHTMLDiv(); document.getElementsByClassName("edit-name-textbox")[0].setAttribute("value",imagename); document.getElementsByClassName("edit-tags-textbox")[0].setAttribute("value",imagetags); document.getElementsByClassName("edit-description-textbox")[0].setAttribute("value",imagedescription!="undefined" ? imagedescription : "" ); PersonasWindow.addClass(document.getElementById("gallerynavbuttons"),"buttoninactive"); PersonasWindow.removeClass(document.getElementById("editnavbuttons"),"buttoninactive"); if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.addClass(document.getElementsByClassName("active")[0],"inactive"); if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("active")[0],"active"); for (var i=0;i<PersonaWindowSelectManager.highlighteds.length;i++){ PersonasWindow.removeClass(PersonaWindowSelectManager.highlighteds[i],"highlighted"); } PersonaWindowSelectManager.highlighteds=[]; var currentedithtmldiv=document.getElementById("gallerystack").getElementsByClassName("edithtmldiv")[0]; PersonasWindow.addClass(currentedithtmldiv,"editactive"); PersonasWindow.removeClass(currentedithtmldiv,"editinactive"); var smallimagewrapperdiv = node.parentNode; var smallimagewrapperdivclone = smallimagewrapperdiv.cloneNode(true); smallimagewrapperdivclone.style.marginLeft="200px"; var imagenode=smallimagewrapperdivclone.getElementsByTagName("image")[0]; imagenode.removeAttribute("onclick"); imagenode.nextSibling.removeAttribute("onclick"); imagenode.removeAttribute("ondblclick"); imagenode.nextSibling.removeAttribute("ondblclick"); PersonasWindow.addClass(imagenode,"editedimage"); PersonasWindow.removeClass(imagenode,"highlighted"); currentedithtmldiv.insertBefore(smallimagewrapperdivclone,currentedithtmldiv.childNodes[0]); PersonasWindow.returndiv=activecollectionname; var aScrollboxElement = document.getElementById('personapools'); var xpcomInterface = aScrollboxElement.boxObject.QueryInterface(Components.interfaces.nsIScrollBoxObject); PersonasWindow.returnscrollx = {}; PersonasWindow.returnscrolly = {}; xpcomInterface.getPosition(PersonasWindow.returnscrollx, PersonasWindow.returnscrolly); }, updatePredicates:function(database,hash,filename,doc){ var ds; if(database=="Individual"){ ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getTheURIFromFileName(PersonasWindow.createIndividualRDFFilename(filename))); } if(database=="Library"){ ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); } if(database=="Collection"){ ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getTheURIFromFileName(PersonasWindow.createCollectionRDfFileName(filename))); } var leafName=PersonasWindow.getTheLeafNameFromFileNameString(filename); var theImageNode = PersonasRotatorRDF.rdfService.GetResource(PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename)); var updatePredicateName; for (var property in hash){ updatePredicateName=property; var updatePredicate=PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#"+updatePredicateName); var updatetarget=ds.GetTarget(theImageNode,updatePredicate,true); if (updatetarget!=null) var updateTargetValue= updatetarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; else {return} var newUpdateTargetValue=hash[property]; var predicate=PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#"+updatePredicateName); var oldtarget=PersonasRotatorRDF.rdfService.GetLiteral(updateTargetValue); var newtarget=PersonasRotatorRDF.rdfService.GetLiteral(newUpdateTargetValue); ds.Change(theImageNode,predicate,oldtarget,newtarget); } try{ ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); } catch(err){ } }, saveEditPersonaChangesGlobally:function(filename,editchanges,doc) { if (filename==undefined) return; PersonasWindow.updatePredicates("Individual",{position:editchanges.position,backgroundcolor:editchanges.backgroundcolor},filename,doc); PersonasWindow.updatePredicates("Collection",{position:editchanges.position,backgroundcolor:editchanges.backgroundcolor},filename,doc); PersonasWindow.updatePredicates("Library",{position:editchanges.position,backgroundcolor:editchanges.backgroundcolor},filename,doc); }, handleeditpersonaclick:function (node) { node=PersonasWindow.hasClass(node,"serdo") ? node.previousSibling : node; if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;}; //PersonasWindow.editstate=true; //PersonasWindow.refreshOtherStates("editstate"); var activecollectionname=node.parentNode.parentNode.getAttribute("id").replace(/htmldiv$/,""); var chosenthumbfilename=node.getAttribute("filename"); var filename=PersonasWindow.createPersonaImageNameFromThumbImageName(chosenthumbfilename); var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var uri=PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename); var imageResource = PersonasRotatorRDF.rdfService.GetResource(uri); var imagenamePredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#name"); var imagenametarget=ds.GetTarget(imageResource,imagenamePredicate,true); if (imagenametarget) { var imagename = imagenametarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagetagsPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#tags"); var imagetagstarget=ds.GetTarget(imageResource,imagetagsPredicate,true); if (imagetagstarget) { var imagetags = imagetagstarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagedescriptionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#description"); var imagedescriptiontarget=ds.GetTarget(imageResource,imagedescriptionPredicate,true); if (imagedescriptiontarget) { var imagedescription = imagedescriptiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagelocationPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#location"); var imagelocationtarget=ds.GetTarget(imageResource,imagelocationPredicate,true); if (imagelocationtarget) { var imagelocation = imagelocationtarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagebackgroundColorPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#backgroundcolor"); var imagebackgroundColortarget=ds.GetTarget(imageResource,imagebackgroundColorPredicate,true); if (imagebackgroundColortarget) { var imagebackgroundColor = imagebackgroundColortarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } var imagepositionPredicate = PersonasRotatorRDF.rdfService.GetResource("urn:personasrotator#position"); var imagepositiontarget=ds.GetTarget(imageResource,imagepositionPredicate,true); if (imagepositiontarget) { var imageposition = imagepositiontarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; } //PersonasWindow.createNewEditHTMLDiv(); //document.getElementsByClassName("edit-name-textbox")[0].setAttribute("value",imagename); //document.getElementsByClassName("edit-tags-textbox")[0].setAttribute("value",imagetags); //document.getElementsByClassName("edit-description-textbox")[0].setAttribute("value",imagedescription!="undefined" ? imagedescription : "" ); //PersonasWindow.addClass(document.getElementById("gallerynavbuttons"),"buttoninactive"); //PersonasWindow.removeClass(document.getElementById("editnavbuttons"),"buttoninactive"); //if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.addClass(document.getElementsByClassName("active")[0],"inactive"); //if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("active")[0],"active"); //for (var i=0;i<PersonaWindowSelectManager.highlighteds.length;i++){ //PersonasWindow.removeClass(PersonaWindowSelectManager.highlighteds[i],"highlighted"); //} //PersonaWindowSelectManager.highlighteds=[]; //var currentedithtmldiv=document.getElementById("gallerystack").getElementsByClassName("edithtmldiv")[0]; //PersonasWindow.addClass(currentedithtmldiv,"editactive"); //PersonasWindow.removeClass(currentedithtmldiv,"editinactive"); //var smallimagewrapperdiv = node.parentNode; //var smallimagewrapperdivclone = smallimagewrapperdiv.cloneNode(true); //smallimagewrapperdivclone.style.marginLeft="200px"; //var imagenode=smallimagewrapperdivclone.getElementsByTagName("image")[0]; //imagenode.removeAttribute("onclick"); //imagenode.nextSibling.removeAttribute("onclick"); //imagenode.removeAttribute("ondblclick"); //imagenode.nextSibling.removeAttribute("ondblclick"); //PersonasWindow.addClass(imagenode,"editedimage"); //PersonasWindow.removeClass(imagenode,"highlighted"); //currentedithtmldiv.insertBefore(smallimagewrapperdivclone,currentedithtmldiv.childNodes[0]); //PersonasWindow.returndiv=activecollectionname; //var aScrollboxElement = document.getElementById('personapools'); //var xpcomInterface = aScrollboxElement.boxObject.QueryInterface(Components.interfaces.nsIScrollBoxObject); //PersonasWindow.returnscrollx = {}; PersonasWindow.returnscrolly = {}; //xpcomInterface.getPosition(PersonasWindow.returnscrollx, PersonasWindow.returnscrolly); var personaImageToEdit=new Image(); personaImageToEdit.src=PersonasWindow.assignFileURIToImage(filename); var PersonasRotatorOptions={collection:false,edit:true,filename:filename,position:imageposition,backgroundcolor:parseInt(imagebackgroundColor)} personaImageToEdit.onload=function(){ // On non-Mac platforms, the Set Persona dialog is modal. openDialog("chrome://browser/content/setDesktopBackground.xul", "","centerscreen,chrome,dialog,modal,dependent",personaImageToEdit,PersonasRotatorOptions); } }, createNewEditHTMLDiv:function() { var newedithtmldiv=document.createElementNS("http://www.w3.org/1999/xhtml","html:div"); newedithtmldiv.setAttribute("class","editinactive edithtmldiv htmldiv"); var appendededithtml=document.getElementById("gallerystack").appendChild(newedithtmldiv); var namelabel=document.createElement("label"); namelabel.setAttribute("value","Name"); namelabel.setAttribute("style","display:block;clear:both;color:white;margin-top:15px;"); namelabel.setAttribute("class","edit-name-label"); var descriptionlabel=document.createElement("label"); descriptionlabel.setAttribute("value","Description"); descriptionlabel.setAttribute("style","display:block;color:white;"); descriptionlabel.setAttribute("class","edit-description-label"); var tagslabel=document.createElement("label"); tagslabel.setAttribute("value","Tags"); tagslabel.setAttribute("style","display:block;color:white;"); tagslabel.setAttribute("class","edit-tags-label"); var nametextbox=document.createElement("textbox"); nametextbox.setAttribute("size","100"); nametextbox.setAttribute("value",""); nametextbox.setAttribute("oninput","document.getElementsByClassName('editedimage')[0].nextSibling.firstChild.nodeValue=this.value;"); nametextbox.setAttribute("class","edit-name-textbox"); var tagstextbox=document.createElement("textbox"); tagstextbox.setAttribute("size","100"); tagstextbox.setAttribute("value",""); tagstextbox.setAttribute("class","edit-tags-textbox"); var descriptiontextbox=document.createElement("textbox"); descriptiontextbox.setAttribute("size","100"); descriptiontextbox.setAttribute("value",""); descriptiontextbox.setAttribute("multiline","true"); descriptiontextbox.setAttribute("width","525"); descriptiontextbox.setAttribute("height","130"); descriptiontextbox.setAttribute("class","edit-description-textbox"); appendededithtml.appendChild(namelabel); appendededithtml.appendChild(nametextbox); appendededithtml.appendChild(tagslabel); appendededithtml.appendChild(tagstextbox); appendededithtml.appendChild(descriptionlabel); appendededithtml.appendChild(descriptiontextbox); }, Editsave:function () { var node=document.getElementsByClassName("editedimage")[0]; var activecollectionname=node.getAttribute("src").split(PersonasWindow.personaImagePreName)[1].split("/")[0]; var chosenthumbfilename=node.getAttribute("filename"); var filename=PersonasWindow.createPersonaImageNameFromThumbImageName(chosenthumbfilename); var ds=PersonasRotatorRDF.rdfService.GetDataSourceBlocking(PersonasWindow.getlibraryfileURI()); var uri=PersonasWindow.databaseResourceSiteName+PersonasWindow.createEncodedName(filename); var imageResource = PersonasRotatorRDF.rdfService.GetResource(uri); var newimagename=document.getElementsByClassName("edit-name-textbox")[0].value; var newimagedescription=document.getElementsByClassName("edit-description-textbox")[0].value; var newimagetags=document.getElementsByClassName("edit-tags-textbox")[0].value; PersonasWindow.updatePredicates("Individual",{name:newimagename,tags:newimagetags,description:newimagedescription},filename,null); PersonasWindow.updatePredicates("Collection",{name:newimagename,tags:newimagetags,description:newimagedescription},filename,null); PersonasWindow.updatePredicates("Library",{name:newimagename,tags:newimagetags,description:newimagedescription},filename,null); var colname=filename.split("/")[0]; var htmldivname=encodeURI(colname)+"htmldiv"; var thumburi=node.getAttribute("src"); var imagearray=document.getElementById(htmldivname).getElementsByTagName("image"); var intendedimagenode={}; for (var i=0;i<imagearray.length;i++) { if(imagearray[i].getAttribute("src")==thumburi) { imagearray[i].nextSibling.firstChild.nodeValue=newimagename; imagearray[i].setAttribute("tooltiptext",newimagename); intendedimagenode=imagearray[i]; break; } } if(PersonasWindow.editstate==true) { document.getElementsByClassName("edithtmldiv")[0].parentNode.removeChild(document.getElementsByClassName("edithtmldiv")[0]); PersonasWindow.editstate=false; } if(!PersonasWindow.hasClass(document.getElementById("editnavbuttons"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("editnavbuttons"),"buttoninactive");} if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.addClass(document.getElementsByClassName("active")[0],"inactive"); if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("active")[0],"active"); PersonasWindow.removeClass(document.getElementById("gallerynavbuttons"),"buttoninactive"); PersonasWindow.addClass(document.getElementById((PersonasWindow.returndiv).toString()+"htmldiv"),"active"); PersonasWindow.removeClass(document.getElementById((PersonasWindow.returndiv).toString()+"htmldiv"),"inactive"); var aScrollboxElement = document.getElementById('personapools'); var xpcomInterface = aScrollboxElement.boxObject.QueryInterface(Components.interfaces.nsIScrollBoxObject); window.setTimeout(function(){xpcomInterface.scrollTo(PersonasWindow.returnscrollx.value,PersonasWindow.returnscrolly.value)},1); PersonasWindow.returndiv=""; }, retrieveclicknode:function (event) { if(PersonasWindow.updateModeOn==true) {return;}; if(event.target.tagName=="menuitem") return; if(PersonasWindow.hasClass(event.target,"collection-button")) return; if(event.target.tagName=="image") return; if(PersonasWindow.hasClass(event.target,"serdo")) return; if((PersonasWindow.hasClass(event.target,"imagewrapperdiv")||PersonasWindow.hasClass(event.target,"active")||event.target.getAttribute("id")=="personapools")) { if (PersonasWindow.copystate==true||PersonasWindow.cutstate==true){ if(!PersonasWindow.hasClass(PersonaWindowSelectManager.highlighteds[0].parentNode.parentNode,"active")){ return; } } } for (var i=0;i<PersonaWindowSelectManager.highlighteds.length;i++){ PersonasWindow.removeClass(PersonaWindowSelectManager.highlighteds[i],"highlighted"); } PersonaWindowSelectManager.highlighteds=[]; PersonasWindow.copystate=false; PersonasWindow.cutstate=false; }, morelikethis:function(){ //obsolete var prefix=decodeURI(document.getElementsByClassName("active")[0].getAttribute("id").replace(/htmldiv$/,"")) if(window.opener!=undefined && window.opener.gBrowser!=undefined){ window.opener.gBrowser.selectedTab = window.opener.gBrowser.addTab('http://personasrotator.com/persona/gallery_tag/'+encodeURIComponent(prefix)); window.opener.focus(); } }, openPersonasRotatorsite:function(){ if (window.opener!=undefined && window.opener.gBrowser!=undefined){ window.opener.gBrowser.selectedTab = window.opener.gBrowser.addTab('http://personasrotator.com/index.php?extmnlg'); window.opener.focus(); } else{PersonasWindow.createAlertPrompt(PersonasWindow.STRINGS.getString("noBrowserWindowWarning"));} }, retrieveAppropriateAlertText:function(){ if(PersonasWindow.additemsstate==true) {return PersonasWindow.STRINGS.getFormattedString("stateWarning",["Adding"])} else if(PersonasWindow.fillspacestate==true) {return PersonasWindow.STRINGS.getFormattedString("stateWarning",["Retrieving"])} else if(PersonasWindow.deletestate==true) {return PersonasWindow.STRINGS.getFormattedString("stateWarning",["Deleting"])} else if(PersonasWindow.copypasteprocessingstate==true) {return PersonasWindow.STRINGS.getFormattedString("stateWarning",["Pasting"])} else if(PersonasWindow.cutpasteprocessingstate==true) {return PersonasWindow.STRINGS.getFormattedString("stateWarning",["Pasting"])} }, createEncodedName:function(passedDecodedName){ var namesplitarray=passedDecodedName.split("/"); var encodedname=""; for (var i=0;i<namesplitarray.length;i++) { encodedname+=encodeURI(namesplitarray[i]); encodedname+=(i!=namesplitarray.length-1) ? "/" : ""; } return encodedname; }, createDecodedName:function(passedEncodedName){ var namesplitarray=passedEncodedName.split("/"); var decodedname=""; for (var i=0;i<namesplitarray.length;i++) { decodedname+=decodeURI(namesplitarray[i]); decodedname+=((i!=namesplitarray.length-1) ? "/" : ""); } return decodedname; }, getMainPersonaDirectoryFileURL:function() { var file = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("ProfD", Components.interfaces.nsIFile); file.append("personasrotator"); var ios = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var URL = ios.newFileURI(file); return URL.spec; }, windowOnClose:function(event){ if(PersonasWindow.updateModeOn){ var answer=PersonasWindow.createConfirmPrompt(PersonasWindow.STRINGS.getString("onCloseWarning")); if(!answer) {event.preventDefault();return;} else{return} } }, bringCSS:function(event){ //obsolete var styleNode=document.getElementById("dbutton"); var styleObject=styleNode.style; var object=styleObject; var objectHash=""; var objectHash2=""; var cssProperties=[]; for (var property in object) { cssProperties.push(property); } var trimmedCssProperties=[]; var open=false; var secondopen=false; for (var i=0;i<cssProperties.length;i++) { if(i>13||i==2||i==3||i==4) { while(cssProperties[i].search(/[A-Z]/)+1){ var foundCharacter=cssProperties[i].match(/[A-Z]/); var splitArray=cssProperties[i].split(foundCharacter.toString()); var emptyString=""; for (var o=0;o< splitArray.length;o++){ if(o< splitArray.length-1) emptyString+=splitArray[o]+"-"+(foundCharacter.toString().toLowerCase()); else {emptyString+=splitArray[o]} } cssProperties[i]=emptyString; } trimmedCssProperties.push(cssProperties[i]); } } for (var i=0;i<trimmedCssProperties.length;i++) { var node=styleNode; var cssValue=document.defaultView.getComputedStyle(node, null).getPropertyValue(trimmedCssProperties[i]); if(cssValue!="") objectHash+="<strong>"+trimmedCssProperties[i]+"</strong>"+":"+cssValue+";<br/>"; } function createLogDiv(type,passedLog){ var log=passedLog; var doc=window.opener.content.document; var logdiv = doc.createElement("div"); var closediv = doc.createElement("div"); var wrapperdiv = doc.createElement("div"); closediv.style.textAlign = "center"; closediv.innerHTML="<a onclick='this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);event.preventDefault();' style='background-color:red;color:white;'>CLOSE (X)</a>"; logdiv.style.width="900px"; logdiv.style.height="480px"; logdiv.style.overflow="auto"; if (type=="html") logdiv.innerHTML=log; else { var textarea=doc.createElement("textarea"); textarea.value=log; textarea.style.width="896px"; textarea.style.height="473px"; textarea.style.overflow="auto"; logdiv.appendChild(textarea); } wrapperdiv.style.position="absolute"; wrapperdiv.style.width="900px"; wrapperdiv.style.height="500px"; wrapperdiv.style.top="0"; wrapperdiv.style.left="0"; wrapperdiv.style.backgroundColor="#FFFFFF"; wrapperdiv.style.color="#000000"; wrapperdiv.style.border="2px solid #000000"; wrapperdiv.appendChild(closediv); wrapperdiv.appendChild(logdiv); doc.body.appendChild(wrapperdiv); } //pass appropritate log. type can either be "html" or "text". createLogDiv("html",objectHash); }, handledonateclick:function(){ if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;}; var visibleInfoDivs=document.getElementsByClassName("infovisible"); for (var i=0;i<visibleInfoDivs.length;i++) { PersonasWindow.removeClass(visibleInfoDivs[i],"infovisible"); } if(PersonasWindow.editstate==true) { var edithtmldiv=document.getElementsByClassName("edithtmldiv")[0]; edithtmldiv.parentNode.removeChild(edithtmldiv); PersonasWindow.editstate=false; } if(!PersonasWindow.hasClass(document.getElementById("newsheading"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("newsheading"),"buttoninactive");} if(!PersonasWindow.hasClass(document.getElementById("gallerynavbuttons"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("gallerynavbuttons"),"buttoninactive");} if(!PersonasWindow.hasClass(document.getElementById("editnavbuttons"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("editnavbuttons"),"buttoninactive");} if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.addClass(document.getElementsByClassName("active")[0],"inactive"); if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("active")[0],"active"); if(document.getElementsByClassName("activecollectionbutton")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("activecollectionbutton")[0],"activecollectionbutton"); PersonasWindow.addClass(document.getElementById("donatediv"),"active"); PersonasWindow.removeClass(document.getElementById("donatediv"),"inactive"); }, opentutorialpage:function(node){ node=node.parentNode; var openurl=""; if(node.getAttribute("id")=="viewwalltut"){openurl="http://personasrotator.com/wrext_viewwalltutorial.php"} else if(node.getAttribute("id")=="addnewwalltut"){openurl="http://personasrotator.com/wrext_addnewwalltutorial.php"} else if(node.getAttribute("id")=="installnewwalltut"){openurl="http://personasrotator.com/wrext_installnewwalltutorial.php"} else if(node.getAttribute("id")=="wallposchangetut"){openurl="http://personasrotator.com/wrext_wallposchangetutorial.php"} else if(node.getAttribute("id")=="browseinstwalltut"){openurl="http://personasrotator.com/wrext_browseinstwalltutorial.php"} else if(node.getAttribute("id")=="browsecomsitetut"){openurl="http://personasrotator.com/wrext_browsecomsitetutorial.php"} else if(node.getAttribute("id")=="uploadwalltut"){openurl="http://personasrotator.com/wrext_uploadwalltutorial.php"} else if(node.getAttribute("id")=="addnewcoltut"){openurl="http://personasrotator.com/wrext_addnewcoltutorial.php"} else if(node.getAttribute("id")=="getfurtherhelptut"){openurl="http://personasrotator.com/wrext_getfurtherhelptutorial.php"} if (window.opener!=undefined && window.opener.gBrowser!=undefined){ window.opener.gBrowser.selectedTab = window.opener.gBrowser.addTab(openurl); window.opener.focus(); } }, handlehelpclick:function(){ if(PersonasWindow.updateModeOn==true) {PersonasWindow.createAlertPrompt(PersonasWindow.retrieveAppropriateAlertText());return;}; var visibleInfoDivs=document.getElementsByClassName("infovisible"); for (var i=0;i<visibleInfoDivs.length;i++) { PersonasWindow.removeClass(visibleInfoDivs[i],"infovisible"); } if(PersonasWindow.editstate==true) { var edithtmldiv=document.getElementsByClassName("edithtmldiv")[0]; edithtmldiv.parentNode.removeChild(edithtmldiv); PersonasWindow.editstate=false; } if(!PersonasWindow.hasClass(document.getElementById("newsheading"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("newsheading"),"buttoninactive");} if(!PersonasWindow.hasClass(document.getElementById("gallerynavbuttons"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("gallerynavbuttons"),"buttoninactive");} if(!PersonasWindow.hasClass(document.getElementById("editnavbuttons"),"buttoninactive")) {PersonasWindow.addClass(document.getElementById("editnavbuttons"),"buttoninactive");} if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.addClass(document.getElementsByClassName("active")[0],"inactive"); if(document.getElementsByClassName("active")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("active")[0],"active"); if(document.getElementsByClassName("activecollectionbutton")[0]!=undefined) PersonasWindow.removeClass(document.getElementsByClassName("activecollectionbutton")[0],"activecollectionbutton"); PersonasWindow.addClass(document.getElementById("helpdiv"),"active"); PersonasWindow.removeClass(document.getElementById("helpdiv"),"inactive"); }, visitDonationPage:function(){ if (window.opener!=undefined && window.opener.gBrowser!=undefined){ window.opener.gBrowser.selectedTab = window.opener.gBrowser.addTab('http://personasrotator.com/wrext_donate.php?ext'); window.opener.focus(); } }, } window.addEventListener("click",PersonasWindow.retrieveclicknode,true); window.addEventListener("load",PersonasWindow.handleWindowLoad,false); window.addEventListener("close",PersonasWindow.windowOnClose,false);